JS中彻底删除对象组成的数组中的元素

在 JS 中,列举一个由对象组成的数组,例如:

 var arrobj = [{ a: 1, b: 2 }, { c: 3, d: 4 },
  { name: 'linzhu', age:22}];

如果我们想要删除其中的第二个对象,应该怎么做呢?其实方法和操作数组完全相同。

在最开始的时候我尝试使用了 delete 运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。

 var arrobj = [{ a: 1, b: 2 }, { c: 3, d: 4 },
  { name: 'linzhu', age: 22 }];
        console.log(arrobj.length)    //输出为 3
        delete arrobj[1];
        console.log(arrobj.length)
        //输出仍为 3

查询运算符 delete时知道它只是将该值置为 undefined,而不会影响数组长度,即将其变为稀疏数组

  console.log(arrobj)

运行结果

了解及此,也许想着可以将删除点之后的元素各往前移动1个单位,实现彻底剔除该元素,但在JS方法中我们可以查到一种更加简便的方式:splice();

splice 是截取数组中的某些内容,按照数组的索引来截取
语法: splice(从哪一个索引位置开始,截取多少个,替换的新元素)
(第三个参数可以不写,用第三个参数把截取完空出来的位置填充)

 var arrobj = [{ a: 1, b: 2 }, { c: 3, d: 4 }, { name: 'linzhu', age: 22 }];
        console.log(arrobj.length)    //输出为 3
        arrobj.splice(1,1)
        console.log(arrobj.length)//输出为 2
        console.log(arrobj) 
   //[ { c: 3, d: 4 }, { name: 'linzhu', age: 22 }]

删除后 arrobj.length 变为 2,这正是我们想要的结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值