删除操作
大约 3 分钟
删除操作
splice()函数
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 注释:该方法会改变原始数组。
array.splice(index,howmany,item1,.....,itemX)
- index 该参数是开始插入和(或)删除的数组元素的下标,必须是数字,使用负值指定从数组末尾开始的位置
- howmany 可选,要删除的项目数。若设置为0,则不会删除任何项目。
- item1......,itemX 可选,要添加到数组中的新项目
- 返回值 如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组
情况一(只有一个参数)
- splice(index) ——> 从index的位置开始,删除之后的所有元素(包括第index个)
- 若 index < 0 , 则删除最后-index个元素
- splice()函数返回删除元素数组
从开始位置删除
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 从下标为2删除之后的所有元素(包含下标2)
let ret = fruits.splice(2);
console.log(ret)
// [ 'Apple', 'Mango' ]
console.log(fruits)
// [ 'Banana', 'Orange' ]
从末尾位置删除1个
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 从末尾向前删除一个
let ret = fruits.splice(-1);
console.log(ret)
// [ 'Mango' ]
console.log(fruits)
// [ 'Banana', 'Orange', 'Apple' ]
从末尾位置删除2个
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 从末尾向前删除二个
let ret = fruits.splice(-2);
console.log(ret)
// [ 'Apple', 'Mango' ]
console.log(fruits)
// [ 'Banana', 'Orange' ]
情况二(两个参数)
- splice(index,howmany) ——> 删除从index位置开始的数,howmany为删除的个数
- 若 howmany 小于等于 0,则不删除 删除一个元素
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 从下标2(包含下标2),删除1个元素
let ret = fruits.splice(2,1);
console.log(ret)
// [ 'Apple' ]
console.log(fruits)
// [ 'Banana', 'Orange', 'Mango' ]
删除2个元素
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 从下标1(包含下标1),删除2个元素
let ret = fruits.splice(1,2);
console.log(ret)
// [ 'Orange', 'Apple' ]
console.log(fruits)
// [ 'Banana', 'Mango' ]
情况三(大于等于三个参数)
- splice(index ,howmany , item1, …, itemX )
- index >0 时
- howmany 为 0 时 不删除只添加 —— 在index位置前添加item1, …, itemX的数
- howmany > 0 删除且添加 —— 在index位置前添加item1, …, itemX的数,并且删除从index位置开始的数,howmany为删除的个数
- index <0 时 最后一个数为 -1 依次倒数第二个数为-2
- howmany 为 0 时 不删除只添加 —— 在-index位置前添加item1, …, itemX的数
- howmany > 0 删除且添加 —— 在-index位置前添加item1, …, itemX的数,并且删除从-index位置开始的数,howmany为删除的个数
无删除元素增加新元素
var array = [0,1,2,3,4,5,6]
// 从下标2(包含下标2)开始,删除0个元素,新增8和9
var result = array.splice(2,0,8,9)
console.log(result)
// []
console.log(array)
// [0, 1, 8, 9, 2,3, 4, 5, 6]
有删除元素增加新元素
let fruits = ["Banana", "Orange", "Apple", "Mango"];
// 从下标2(包含下标2)开始,删除1个元素,新增 Lemon 和 Kiwi
let ret = fruits.splice(2, 1, "Lemon", "Kiwi");
//添加的元素 Lemon和Kiwi
console.log(fruits)
//结果:["Banana", "Orange", "Lemon", "Kiwi", "Mango"]
//删除的元素 Apple
console.log(ret)
//结果: ["Apple"]
delete()函数
删除对象/删除数组某一项(不建议数组中使用)
<script>
//数组
const arr = [3, 4, 4, 5, 4, 6, 5, 7];
delete arr[1];
console.log(arr); // [3, empty, 4, 5, 4, 6, 5, 7]
//对象
const obj = {
name: 'pboebe',
age: '23',
sex: '女',
sex1: '男'
};
delete obj.sex;
console.log(obj); // {name: "pboebe", age: "23"}
</script>