今天分享的是Js中的splice()函数,改变原数组,
要创建不改变原数组的新数组,可以用toSpliced
访问其中一部分而不修改,也就是截取用slice
语法
Array.splice(start,deleteCount,item1,...,itemN)
start:起始位置的索引
deleteCount:删除的个数
item1-itemN :增加的元素
返回值
返回被删除的元素数组
示例
1. 删除索引2前0个元素,并插入drum
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");
// 运算后的 myFish 是 ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed 是 [],没有元素被删除
2. 移除索引2前0个元素,插入两个值
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum", "guitar");
// 运算后的 myFish 是 ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed 是 [],没有元素被删除的
3. 索引3移除1个元素
const myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
const removed = myFish.splice(3, 1);
// 运算后的 myFish 是 ["angel", "clown", "drum", "sturgeon"]
// removed 是 ["mandarin"]
4.从索引2删除所有元素
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2);
// 运算后的 myFish 是 ["angel", "clown"]
// removed 是 ["mandarin", "sturgeon"]
稀疏数组
splice()方法保留了数组的稀疏性
const arr = [1, , 3, 4, , 6];
console.log(arr.splice(1, 2)); // [empty, 3]
console.log(arr); // [1, 4, empty, 6]