В настоящее время я работаю с геокодированием карт Google и вам необходимо создать массив, который будет содержать массивы в качестве элементов.JavaScript push Array в массив
В принципе, мне нужно, чтобы создать это:
var locations = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
Но динамично! Мне нужен этот массив, чтобы поместить контакты на карту позже.
Что я делаю:
var locations = []; // The initial array
for (var i = 0; i < addresses.length; ++i){
var address=addresses[i]; // the address e.g. 15 Main St, Hyannis, MA
geocoder.geocode({ 'address': address}, function(results){
var obj = {
0: address,
1: results[0].geometry.location.hb,
2: results[0].geometry.location.ib,
3: i
};
console.log(obj);
locations.push(new Array());
locations[i].push(obj);
});
};
console.log(locations.length);
Проблема, вопрос:
Я не вижу каких-либо ошибок, но в конечных точках [] массив пуст.
Вот экран консоли, если это необходимо:
'geocode' является асинхронной. Перед обработкой массива вам нужно подождать, пока ВСЕ вызовы ответят. – Prinzhorn
Hm. Я думал, цикл должен быть закончен для продолжения скрипта? нет? – rinchik