js中删除数组元素的方法汇总

1、splice()

splice() 用于添加或删除数组中的元素。

注意:这种方法会改变原始数组

// 返回值
var sites = ['runn','google','taobao'];
sites.splice(2,1);  // 删除一个,返回删除元素的数组。['taobao'] 
sites.splice(2,0);  //删除0个,返回空数组。[]


// 删除元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1);
console.log(fruits) //["Banana", "Orange", "Mango"]


// 添加新元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");  // ["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]

语法:arr.splice(index, num, item1, ..., itemX)

  • index
    必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组下标,必须是数字。
  • num
    可选。规定应该删除多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
  • item1,…,itemX
    可选。要添加到数组的新元素

2、shift()

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

注意: 此方法改变数组的长度

var fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits.shift();  // ["Orange", "Apple", "Mango"]
fruits.pop();   // ["Banana", "Orange", "Apple"]

3、pop()

pop() 方法用于删除数组的最后一个元素并返回删除的元素。

注意:此方法改变数组的长度

4、迭代方法

所谓的迭代方法就是 用循环迭代数组元素发现符合要删除的项则删除,用的最多的地方可能是数组中的元素为对象的时候,根据对象的属性例如ID等等来删除数组元素。下面介绍两种方法:

第一种用最常见的ForEach循环来对比元素找到之后将其删除:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits.forEach(function(item, index, arr) {
    if(item == "Orange") {
        arr.splice(index, 1);
    }
});

第二种我们用循环中的filter方法:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits = fruits.filter(function(item) {
    return item != "Orange"
});

console.log(fruits);    // ["Banana", "Apple", "Mango"]

5、length

通过设置这个属性可以从数组的末尾移除项或添加新项

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length = 3;  // ["Banana", "Orange", "Apple"]
console.log(fruits[3]);  //undefined

6、delete

var arr = [1, 2, 3, 4];
delete arr[0];
console.log(arr);   //[undefined, 2, 3, 4]

delete删除之后数组长度不变,只是被删除元素被置为undefined。

参考:https://blog.youkuaiyun.com/u010323023/article/details/52700770

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值