#javascript #node.js
#javascript #node.js
Вопрос:
Моя цель — взять все внутри placeResult и загрузить это в список. Ваш список был бы таким, как показано ниже
Где на каждом <li>
есть новая фотография из массива, новый адрес и оценки из ответа массива. Пример ответа placeResult здесь:
{formatted_address: "1111 Example Rd, CityName, State 33333, USA", name: "Ruby Tuesday", photos: Array(10), rating: 4.1},
{formatted_address: "2222 Example Rd, CityName, State 44444, USA", name: "McDonalds", photos: Array(10), rating: 3.1},
{formatted_address: "3333 Example Rd, CityName, State 55555, USA", name: "Burger King", photos: Array(10), rating: 2.1}
Мое лучшее предположение, что мне нужен вторичный цикл для обработки этого. В настоящее время он просто выдает мне повторение одной и той же фотографии из того же места и заполняет <li>
.
Код
if (placeResult.photos) {
const ulList = document.createElement('ul');
infoPane.append(ulList);
const liList = document.createElement('li');
ulList.append(liList);
for (var i = 0; i < placeResult.name.length; i ) {
console.log("PlaceResult", placeResult.formatted_address);
const firstPhoto = placeResult.photos[0];
const photo = document.createElement('img');
photo.classList.add('hero');
photo.src = firstPhoto.getUrl()
liList.appendChild(photo);
}
}
Ответ №1:
Вероятно, вам следует переписать 8 строк:
const firstPhoto = placeResult[i].photos[0];
или вы допустили ошибку в условии завершения цикла, возможно, вы имеете в виду:
for (var i = 0; i < placeResult.length; i ) { .. } //iterate over places array
//or..
for (var i = 0; i < placeResult.photos.length; i ) { .. } // iterate over photos array