js之splice()向/从数组中添加/删除指定元素

本文详细介绍了JavaScript中数组的splice方法,包括其参数用法和实例演示。通过splice方法可以在数组的特定位置添加或删除元素,并返回被删除的元素。示例展示了如何在不同位置插入元素以及删除元素的操作,同时强调splice方法会直接修改原数组。

语法:

array.splice(index, howmany, item1, ....., itemX)

参数:

index:必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。
howmany:可选。要删除的项目数。如果设置为 0,则不会删除任何项目。
item1, ..., itemX:可选。要添加到数组中的新项目。

注:splice()方法会改变原始数组。

var arr = [1,2,3,4,5];
arr.splice(1,0,666); // 在1的位置删除0个元素,添加666
console.log('arr', arr); //  [1, 666, 2, 3, 4, 5]


var arr1 = [1,2,3,4,5];
arr1.splice(1,0,666,888); // 在1的位置删除0个元素,添加666,888
console.log('arr1', arr1); //  [1, 666,888, 2, 3, 4, 5]

var arr2 = [1,2,3,4,5];
arr2.splice(1,2,999); // 在1的位置删除2个元素,添加999
console.log('arr2', arr2); //  [1, 999, 4, 5]

var arr3 = [1,2,3,4,5];
arr3.splice(arr3.length-1,0,888); // 在倒数第一个元素前面删除0个元素,添加888
console.log('arr3', arr3); // [1, 2, 3, 4, 888, 5]

官方地址

### ES5 中 `splice` 方法删除数组元素的用法与示例 在 ES5 中,`splice` 方法是用于修改数组内容的一个强大工具。它可以删除、替换或添加数组中的元素且会直接改变原数组[^3]。 #### 基本语法 ```javascript arr.splice(start, deleteCount[, item1[, item2[, ...]]]) ``` - `start`:指定修改的起始位置索引。 - `deleteCount`:要删除元素数量。如果设置为 0,则不会删除任何元素。 - `item1, item2, ...`:可选参数,表示从 `start` 位置开始插入的元素。 #### 删除数组元素的具体用法 当仅需删除数组中的某些元素时,可以将 `splice` 方法的 `deleteCount` 参数设置为需要删除元素数量,而不提供额外的插入项。 ##### 示例 1:删除单个元素 以下代码展示了如何使用 `splice` 方法删除数组指定索引处的单个元素: ```javascript let array = [1, 2, 3, 4, 5]; let indexToDelete = 2; let numberOfElementsToDelete = 1; array.splice(indexToDelete, numberOfElementsToDelete); console.log(array); // 输出: [1, 2, 4, 5] ``` 在这个例子中,`splice` 方法从索引 `2` 开始删除了 `1` 个元素,最终数组变为 `[1, 2, 4, 5]`[^1]。 ##### 示例 2:删除多个元素 若需要删除多个连续的元素,只需调整 `deleteCount` 的值即可: ```javascript let array = [1, 2, 3, 4, 5]; let indexToDelete = 1; let numberOfElementsToDelete = 3; array.splice(indexToDelete, numberOfElementsToDelete); console.log(array); // 输出: [1, 5] ``` 此代码片段中,从索引 `1` 开始删除了 `3` 个元素,结果数组变为 `[1, 5]`[^3]。 #### 注意事项 1. **原数组被修改**:`splice` 方法会直接改变调用它的数组。 2. **返回值**:该方法返回一个包含被删除元素的新数组。如果没有删除任何元素,则返回一个空数组[^4]。 ##### 示例 3:获取被删除元素 以下代码展示了如何捕获打印被删除元素: ```javascript let array = [1, 2, 3, 4, 5]; let removedElements = array.splice(1, 3); console.log(removedElements); // 输出: [2, 3, 4] console.log(array); // 输出: [1, 5] ``` #### 循环中删除元素的注意事项 在遍历数组时,如果需要根据条件删除元素,需要注意索引的变化。可以通过从后向前遍历数组来避免索引错乱问题。 ##### 示例 4:安全地删除符合条件的元素 以下代码展示了如何在循环中安全地删除满足特定条件的元素: ```javascript let array = [{ id: 1, sex: 1 }, { id: 2, sex: 0 }, { id: 3, sex: 1 }]; for (let i = array.length - 1; i >= 0; i--) { if (array[i].sex === 1) { array.splice(i, 1); } } console.log(array); // 输出: [{ id: 2, sex: 0 }] ``` 在这个例子中,通过从数组末尾向前遍历,确保删除操作不会影响尚未处理的元素索引[^5]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值