如何复制数组行为?

Amb*_*mps 8 javascript arrays object

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

var array;
array = [ "a", "b", "c" ];
Run Code Online (Sandbox Code Playgroud)

并运行

Object.keys(array);
Run Code Online (Sandbox Code Playgroud)

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

当我添加一个属性,如:

array["a"] = "d";
Run Code Online (Sandbox Code Playgroud)

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

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

array["3"] = "d";
Run Code Online (Sandbox Code Playgroud)

array现在的长度4.

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

nnn*_*nnn 1

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

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

Object.keys(array).length
Run Code Online (Sandbox Code Playgroud)

...sinceObject.keys()返回一个本身具有.length属性的数组。