在 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  //输出为 3delete 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  //输出为 3test.splice(1, 1);test.length  //输出为 2

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

原文地址:https://blog.csdn.net/WI_232995/article/details/77776433