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

来源:互联网 发布:专抢微信大红包软件 编辑:程序博客网 时间:2024/06/05 08:12

在JS中,对于某个由json对象组成的数组,例如:

var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];

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

 

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

    var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];    test.length   //输出为 3    delete test[1];    test.length   //输出仍为 3

查询运算符delete我们知道它只是将该值置为undefined,而不会影响数组长度,即将其变为稀疏数组(《JS权威指南》7.5节)。

 

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

    var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];    test.length   //输出为 3    test.splice(1, 1);    test.length   //输出为 2

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

原创粉丝点击