Javascript Google地图标记数组返回不正确的长度

时间:2018-05-12 07:34:27

标签: javascript google-maps

我在JS中声明了一个数组变量,其中为数组中的每个新元素创建了动态命名的元素。

但是,在尝试计算数组中元素的数量时,我得到了0.

我做错了什么?谢谢!

var cityMarkers = [];

cityMarkers[element.name] = new google.maps.Marker({ 
       ...
});

[Piacenza: _.te, Voghera: _.te, Valenza: _.te]
Piacenza: _.te {__gm: {…}, gm_accessors_: {…}, position: _.K, gm_bindings_: {…}, map: Wf, …} 
Valenza: _.te {__gm: {…}, gm_accessors_: {…}, position: _.K, gm_bindings_: {…}, map: Wf, …}
Voghera: _.te {__gm: {…}, gm_accessors_: {…}, position: _.K, gm_bindings_: {…}, map: Wf, …}
length: 0
__proto__: Array(0)`

1 个答案:

答案 0 :(得分:1)

通过

cityMarkers[element.name] = new google.maps.Marker({
  ...
})

你实际上并没有向数组中添加内容,但是你将这个数组视为常规对象而不是你定义'常规'属性(JS数组,就像函数是特殊类型的对象,所以它们允许像这样对待)。这就是属性length仍为0的原因。