8

我知道 JavaScript 中的数组只不过是一个对象。当我定义这样的数组时:

var array;
array = [ "a", "b", "c" ];

并运行

Object.keys(array);

我得到以下数组:["0", "1", "2"]. 的数组长度array3

当我添加如下属性时:

array["a"] = "d";

Object.keys()正在返回["0", "1", "2", "a"],但数组长度array仍然是3

但是当我添加这样的属性时:

array["3"] = "d";

的长度array是现在4

如果array只是另一个对象,当我从头开始我的对象时,如何实现这种行为var myArray = {}

4

2 回答 2

1

.length属性仅包括具有数字索引的属性,特别是具有大于或等于零的整数值的属性。

如果您询问如何从数组或对象中获取所有键的总数,那么您可以这样做:

Object.keys(array).length

...因为Object.keys()返回一个本身将具有.length属性的数组。

于 2012-08-23T13:00:52.047 回答
1

数组的length属性是最高数字索引的值 + 1。

因此,array["3"] = "d";在最高数字索引之后3,长度返回4

Object.keys(array).length应该给你长度。

于 2012-08-23T13:05:00.297 回答