所以我有以下代码,我检查数组中是否存在密钥。如果不是我创建它然后我推入其中的项目。除了主数组的长度始终为0外,一切正常。
if(typeof this.markerList[this.lastClicked] === 'undefined'){
this.markerList[this.lastClicked] = [];
}
this.markerList[this.lastClicked].push(marker);
console.log的结果:
答案 0 :(得分:1)
MDN:当属性为a时,在JavaScript数组上设置属性 有效的数组索引,该索引超出了当前的范围 数组,引擎将更新数组的length
因此,length
属性不会更新,因为您使用的是键而不是数字索引。
由于Array
也是Object
,您所做的只是附加一个属性,这对length
属性没有任何影响。
答案 1 :(得分:0)
数组是对象,可以有属性。
var myArray = [];
myArray.push(1);
myArray.push(2);
myArray["somekey"] = [];
转储给:
length属性与使用push
方法或使用数字索引array[x] =
在this.markerList
中,您似乎没有在数组中添加任何元素,只添加了属性。