【发布时间】:2020-02-09 12:26:23
【问题描述】:
我有一个数组:
var Array = {};
Array['elements'] = [];
Array['elements'][0]['name'] = "Sally";
Array['elements'][0]['age'] = "20";
Array['elements'][3]['name'] = "Jack";
Array['elements'][3]['age'] = "21";
Array['elements'][4]['name'] = "Megan";
Array['elements'][4]['age'] = "22";
我不知道如何从数组中删除 Jack 以仅返回女性列表。 Splice 是可变的,并且传回整个对象似乎效率低下且麻烦。
在 PHP 中,您可以:
unset($Array['elements'][3]);
我试过了
delete Array['elements'][3];
但这只是在它的位置产生一个空值,并没有真正删除元素,在我测试元素的其他地方搞砸了。有没有一种干净的方法可以根据其键从数组中删除元素?
谢谢!
【问题讨论】:
-
您编写的代码不起作用,因为 Array.elements[0] [3] 和 [4] 从未定义,您无法向它们添加属性 - 首先,我永远不会重载
Array,我不会将该变量称为Array的任何变体,因为它不是数组;最后测试null,如果你坚持.elements是一个数组(你可以把它变成一个对象,你不会得到一个稀疏数组) -
为什么只添加到索引 0、3 和 4?这些数字有什么意义?
标签: javascript jquery arrays javascript-objects