2019-06-05
描述
和 Array.prototype.splice()
有着同样的功能,但是需要返回新数组来替代对原始数组的修改。
提示
- 使用
Array.prototype.slice()
和Array.prototype.concat()
来获取移除存在的元素并且(或者)添加新元素后的新数组内容。 - 第二个参数为
index
, 默认从0
开始 - 第四个元素为
elements
,默认不添加新元素
代码
const shank = (arr, index = 0, delCount = 0, ...elements) =>
arr
.slice(0, index)
.concat(elements)
.concat(arr.slice(index + delCount));
示例
保持原数组不变的情况下,对其进行 splice
:
const names = ['alpha', 'bravo', 'charlie'];
const namesAndDelta = shank(names, 1, 0, 'delta'); // [ 'alpha', 'delta', 'bravo', 'charlie' ]
const namesNoBravo = shank(names, 1, 1); // [ 'alpha', 'charlie' ]
console.log(names); // ['alpha', 'bravo', 'charlie']
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于