我知道 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 = {}
一样从头开始我的对象时,我怎么能实现这种行为呢? ?
最佳答案
.length
属性仅包括具有数字索引的属性,特别是那些具有大于或等于零的整数值的属性。
如果您询问如何从数组或对象中获取所有 键的总数,那么您可以这样做:
Object.keys(array).length
...因为 Object.keys()
返回一个本身具有 .length
属性的数组。
关于javascript - 如何复制数组行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091595/