js数组数据的删除操作

清空数组的操作

splice清空

let arr = [1, 2, 3, 4];
        console.log("test:", arr)
        arr.splice(0, arr.length);
        console.log("test:", arr)

结果:

输入图片说明

赋空值

console.log("--------------赋空值-----------------------")
        let arr1 = [1, 2, 3, 4];
        arr1 = []
        console.log("test:", arr)

结果:

输入图片说明

删除数组元素

splice方式

console.log("--------------splice-----------------------")
        var ary = [1, 2, 3, 4];
        console.log("删除数组元素-1-before:", ary)
        ary.splice(0, 1);
        console.log("删除数组元素-1-after:", ary)
        console.log("删除数组元素-1-after:", ary[0])

结果:

输入图片说明

注意:直接会改变数组的内容,数组的index索引对应的值也会变化,长度也同时变化,索引为0的值变成了原来索引为1的值

delete方式

console.log("--------------delete-----------------------")
        let arr2 = [1, 2, 3, 4];
        console.log("删除数组元素-2-before:", arr2)
        delete arr2[1]
        console.log("删除数组元素-2-after:", arr2)
        console.log("删除数组元素-2-after:", arr2[1])

结果:

输入图片说明

注意:delete数组元素,不会改变数组长度,被删除索引对应的值变成了undefined,其他索引对应的值都没有变化

遍历删除

console.log("--------------遍历-----------------------")
        var sss = [1, 2, 3, 4];
        console.log("遍历删除数组元素--before:", ary)
        let sary = sss.map((item)=>{
          console.log("--",item)
          if (item != 4){
            return item
          }
        })
        console.log("删除数组元素--after:", sary)

结果:

输入图片说明

或者:

var arr5 = [1, 2, 3, 4];
        let result = [];
        for(let item of arr5){
          if(item != 4){
            result.push(item)
          }
        }
        console.log("删除数组元素--result:", result)

结果:

输入图片说明

注意: 当然不推荐用遍历的方式,效率不好

删除数组中对象

let arrResult = [];
        arrResult.push({id:1,name:'apple'})
        arrResult.push({id:2,name:'banana'})
        arrResult.push({id:1,name:'orange'})
        console.log("删除数组元素--before:", arrResult)
        let fruit = {id:2,name:'banana'}
        //删除fruit
        let index = -1;//这里不能设置0,因为数组索引是从0开始的
        for(let i=0;i<arrResult.length;i++){
          let temp = arrResult[i];
          if(temp.id == fruit.id){
            index = i;
            break
          }
        }
        if(index >= 0){
          arrResult.splice(index,1);
        }
        console.log("删除数组元素--after:", arrResult)

删除之前结果:

输入图片说明

删除之后结果:

输入图片说明

如果有更好的方式,请回复留言

转载于:https://my.oschina.net/u/3011256/blog/1632219

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值