【发布时间】:2015-05-12 07:52:56
【问题描述】:
例如,当在数组的索引上使用delete 运算符时,索引会被删除,就像任何对象的任何属性一样。
这证明了:
var arr = ['one', 'two', 'three'];
delete arr[1];
if(1 in arr)
alert("It didn't work!");
如果你要运行这个块,你会发现文本“It didn't work!”永远不会提醒用户。这是因为数组中属于索引1 的属性已被删除。
现在,事情变得奇怪了……
虽然从数组中删除了索引,但数组长度应保持不变:
var arr = ['one', 'two', 'three'];
alert(arr.length); //will alert '3'
delete arr[2];
alert(arr.length); //will still alert '3'
在调试器中查看数组arr 时(至少在Chrome 中),您会看到索引2 甚至不存在,那么为什么长度仍然报告为3?强>
【问题讨论】:
-
我事先没有看到这些帖子,因为它们没有在我的搜索过程中出现。我同意我的问题可能是重复的。我很抱歉。
标签: javascript