从多维数组中删除元素

Mil*_*911 3 javascript object

我有以下多维数组:

{"2":{"cid":"2","uid":"2"},"1":{"cid":"1","uid":"3"}}
Run Code Online (Sandbox Code Playgroud)

在这个例子中我想删除

"1":{"cid":"1","uid":"3"}
Run Code Online (Sandbox Code Playgroud)

从中.我已经尝试了我在stackoverflow上找到的所有解决方案,并且无法使它们中的任何一个工作.我主要是php的人,所以我可能会错过一些重要的东西吗?

Sir*_*rko 13

只需使用delete适当的属性.

var obj = {"2":{"cid":"2","uid":"2"},"1":{"cid":"1","uid":"3"}};

delete obj["1"];
Run Code Online (Sandbox Code Playgroud)

注意"1左右将其标记为标识符而不是数组索引!

编辑 正如评论中所指出的,obj无论您如何处理该[1]属性,都是一个对象而不是数组 .我的最后一点是为了清楚地表明你正在使用一个对象而不是一个数组.

根据我的经验,大多数人将整数属性与数组和字符串属性与对象相关联.所以我认为以给定的方式强调财产可能更有帮助.

  • 它不是数组索引,因为*obj*是一个对象,而不是因为该值是一个字符串.解析属性名称的早期步骤是将它们转换为字符串,因此`obj [1]`和`obj ['1']`的结果无法区分`obj [(function(){return 1; }())]`会.由于Arrays是Objects,`array [1]`的结果与`array ['1']`完全相同. (4认同)