Результат ответа цикла на список HTML

#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