能否有人解释一下这个(奇怪的)行为?为什么第一个例子的长度是3而不是2,更重要的是,为什么第二个例子的长度是0?只要键是数字,长度就有效。当它们不是数字时,长度为0。我该如何从第二个示例中获取正确的长度?谢谢。
a = [];
a["1"] = {"string1":"string","string2":"string"};
a["2"] = {"string1":"string","string2":"string"};
alert(a.length); // returns 3
b = [];
b["key1"] = {"string1":"string","string2":"string"};
b["key2"] = {"string1":"string","string2":"string"};
alert(b.length); // returns 0
a[0]
实际上不会被设置为undefined
;对于未设置的所有索引,都将返回undefined
。 - outis