当使用字符串作为数组键时,console
显示该数组不包含这些已声明的值,并且在按此值迭代时,键为字符串的值未显示,尽管我可以获取它们的值。
>> var arr = [ 0, 1, 2, 3 ];
undefined
>> arr["something"] = "aught";
"aught"
>> arr
[0, 1, 2, 3]
>> arr["something"]
"aught"
>> for( var i = arr.length; i--; console.log( arr[ i ] ) );
3
2
1
0
我了解数组是JavaScript引擎中实现了某种“枚举”接口的对象。
最有趣的是,解释器既没有抛出警告也没有报错,因此我花了一些时间寻找数据可能丢失的地方。
{}
称为关联数组。它被称为带有属性的对象。大多数人是否都同意,最好不要混淆把JavaScript对象称为关联数组? - jfriend00arr.something
。也许我太久没有睡觉了...我忘记了。谢谢。 @David - 很好,我不知道这个。 - abudubavar a = []; a['test'] = ""; a;
后显示为['test': ""]
,因此预期a.length
为空。如果添加a[0] = 0;
,则键'o'和'test'都具有'a'属性,这很奇怪! - Jean-Luc Barat