У меня есть существующий многомерный ассоциативный массив с этой структурой. Он имеет 3 элемента. Каждый из подмассивов имеет 3 элемента.Как добавить в ассоциативный массив JS
{"id":"723419","lat":33.217,"lon":-92.817,"dist":1437.15733534053},
{"id":"723424","lat":33.567,"lon":-91.717,"dist":1902.4556686060116},
{"id":"722447","lat":32.383,"lon":-94.717,"dist":2317.6870313059217},
Я хочу, чтобы создать другой (Temp) массив с 3-х элементов, а также цикл через массив, добавление элемента в каждой подрешетки, так что каждый подмассив будет иметь 4 элемента:
{"id":"723419","lat":33.217,"lon":-92.817,"dist":1437.15733534053,"elev":abc},
{"id":"723424","lat":33.567,"lon":-91.717,"dist":1902.4556686060116,"elev":def},
{"id":"722447","lat":32.383,"lon":-94.717,"dist":2317.6870313059217,"elev":ghi},
до сих пор я пытался перебрать моего временного массив
for (var i in tempArray) { //loop through locations returned with elevation data
multiArray[i]['elev']=...
}
и обрабатываю его как объект (даже если я объявил мультиселектор массив как Array()
for (var i in tempArray) { //loop through locations returned with elevation data
multiArray.i.append(elev)=...
}
В обоих случаях JS жалуется, что multiArray[i]
не существует. Из того, что я знаю о JS, это должно сработать.
Спасибо за помощь
Вы перебираете tempArray, но пытаетесь получить доступ к multiArray. И ваш список выглядит следующим образом: - [{"id": "723419", "lat": 33.217, "lon": - 92.817, "dist": 1437.15733534053}, {"id": "723424", " "lat": 33.567, "lon": - 91.717, "dist": 1902.4556686060116}, {"id": "722447", "lat": 32.383, "lon": - 94.717, "dist": 2317.6870313059217}] ? Для массивов используйте простой для цикла не для цикла. for in loop лучше всего подходит для объектов, а не массивов. – pvnarula
JavaScript не PHP. Не используйте 'for .. in' для перебора массивов в JavaScript, это неправильная вещь (вместо этого используйте обычный цикл' for' от 'i = 0' до' array.length'). Кроме того, это * объекты *, а не ассоциативные массивы. Используете ли вы 'Array()' или '[]', чтобы объявить, что это не делает никаких технических различий, но вы всегда должны использовать '[]'. – Tomalak