Это не массив, это простые объекты, поэтому вы не можете использовать свойство length
.
Вам необходимо использовать оператор for...in
:
for(var x in map_data) {
if (map_data.hasOwnProperty(x))
for(var y in map_data[x]) {
if (map_data[x].hasOwnProperty(y)) {
// CODE
}
}
}
Проверки hasOwnProperty
заключаются в том, что этот оператор перебирает все свойства, унаследованные или нет, и если что-то (например, некоторые JavaScript-структуры) расширяет объекты Array.prototype
или Object.prototype
, эти расширенные свойства также будут повторяться. 1013 *
Вы должны знать, что это утверждение никоим образом не обеспечивает порядок итерации.
Я бы порекомендовал вам использовать "настоящий" массив:
[
[{"name":"aa"},{"name":"bb"}],
[{"name":"cc"},{"name":"dd"}]
]
Таким образом, вы сможете использовать свойство length
для итерации по индексам.