为什么这个非常基本的JavaScript数组在我只有3个键/值对时给出了13的长度。有意义的是,它可能认为13为基于0的索引,而我的最后一个数组的键为12,但我需要任何具有键/值对的数组,它返回正确的对数。密钥必须是数字。
编辑:这是我解决它的方式,谢谢。
答案 0 :(得分:6)
这是因为你拥有的最高数字是:
array['12'] = 'twelve';
这会创建一个13的数组长度(因为它基于0)。 JavaScript将扩展数组以分配满足指定插槽所需的位数。 array[0..9]
在那里,你只是没有在其中放置任何东西。
答案 1 :(得分:1)
数组的length
属性返回对象的最大非负数字键加一。这就是它的定义方式。
如果你想计算键值对,你将不得不自己计算(通过在添加和删除它们时跟踪它们,或者通过迭代它们)。
答案 2 :(得分:1)
或者,像这样重新排列数组:
var array = [];
array.push(['10','ten']);
array.push(['11','eleven']);
array.push(['12','twelfe']);
alert(array.length);
答案 3 :(得分:1)
array['12']
和array[12]
之间没有区别(数组['12']不被视为