我知道JavaScript中的数组只不过是一个对象。 当我定义这样的数组时:
var array;
array = [ "a", "b", "c" ];
并运行
Object.keys(array);
我得到以下数组:["0", "1", "2"]
。 array
的数组长度为3
。
当我添加如下属性时:
array["a"] = "d";
Object.keys()
正在返回["0", "1", "2", "a"]
,但array
的数组长度仍为3
。
但是当我添加这样的属性时:
array["3"] = "d";
array
的长度现为4
。
如果array
只是另一个对象,那么当我从头开始像var myArray = {}
这样的对象时,我怎样才能实现这种行为?
答案 0 :(得分:1)
.length
属性仅包含具有数字索引的属性,特别是整数值大于或等于零的属性。
如果您问如何从数组或对象中获取所有键的总数,那么您可以这样做:
Object.keys(array).length
...因为Object.keys()
返回一个本身具有.length
属性的数组。
答案 1 :(得分:1)
数组的length
属性是最高数字索引+ 1的值。
因此array["3"] = "d";
后最高数字索引为3
因此长度返回4
Object.keys(array).length
应该给你一定的长度。