Javascript:添加项目时,数组长度保持为0

时间:2015-02-26 09:36:40

标签: javascript arrays

所以我有以下代码,我检查数组中是否存在密钥。如果不是我创建它然后我推入其中的项目。除了主数组的长度始终为0外,一切正常。

if(typeof this.markerList[this.lastClicked] === 'undefined'){
    this.markerList[this.lastClicked] = [];
}
this.markerList[this.lastClicked].push(marker);

console.log的结果:

enter image description here

2 个答案:

答案 0 :(得分:1)

  

MDN:当属性为a时,在JavaScript数组上设置属性   有效的数组索引,该索引超出了当前的范围   数组,引擎将更新数组的length

因此,length属性不会更新,因为您使用的是键而不是数字索引。

由于Array也是Object,您所做的只是附加一个属性,这对length属性没有任何影响。

答案 1 :(得分:0)

数组是对象,可以有属性。

var myArray = [];

myArray.push(1);
myArray.push(2);

myArray["somekey"] = [];

转储给:

enter image description here

length属性与使用push方法或使用数字索引array[x] =

添加的元素数量相关

this.markerList中,您似乎没有在数组中添加任何元素,只添加了属性。