Array.prototype.splice()

70 阅读1分钟

今天分享的是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]