Javascript Google Maps Marker Array Возвращается неверная длина - PullRequest
0 голосов
/ 12 мая 2018

Я объявил переменную массива в 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 голосов
/ 12 мая 2018

Делая

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

вы на самом деле не добавляете вещи в массив, но вместо этого вы рассматриваете этот массив как обычный объект, для которого вы определяете «обычные» свойства (массивы JS, например, функции - это особые виды объектов, поэтому они позволяют обрабатывать так ). Вот почему свойство length по-прежнему 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...