Перебор моего массива возвращает символы ошибки [i] как «неопределенные», хотя console.log(символы [i].index) отображает значение

#javascript #arrays #loops

#javascript #массивы #циклы

Вопрос:

Я перебираю свой массив dateIndex, но я получаю dateIndex [i] как неопределенный, но когда я консолью.регистрирует dateIndex[i].index, отображается значение.

 let dateIndex  =  {
  dateAndoutPutElements:[
    {"d_index": 3, "outPutElement": "1st"},
    {"d_index": 11, "outPutElement": "2nd"},
    {"d_index": 19, "outPutElement": "3rd"},
    {"d_index": 27, "outPutElement": "4th"},
    {"d_index": 35, "outPutElement": "5th"}
  ]
}; 

let chars = dateIndex.dateAndoutPutElements;
console.log(chars);
console.log("Index is "   chars[1].d_index);
let len=""; 
let day=1;                                                   
for (let i = 0; len = chars.length; i  ) {
  console.log("Index is "   chars[i].d_index);   // Error occurs here apparently

  var date = data.list[chars[i].d_index].dt_txt;
  var tempValue = data.list[chars[i].d_index].main.temp;
  var descript = data.list[chars[i].d_index].weather[0].description;
  var icon = data.list[chars[i].d_index].weather[0].icon;

  console.log('Day:'  day  ' forecast');
  console.log(date);
  console.log(tempValue);
  console.log(descript);
  console.log(icon);
  console.log(chars[i].outPutElement);
  let ic = '<div> <img height="150" width="150" src="http://openweathermap.org/img/wn/' icon '@2x.png" ></img></div>'; 

  day  ;
  let output =         
    '<p> Date:         '  date    
    '<br>              '  ic    
    '<br>Temperature:  '  Math.round(tempValue)  'amp;degC'   
    '<br>Description:  '  descript     '</p>';

  document.getElementById(chars[i].outPutElement).innerHTML = output;


  //View.show5DayForecast(date, ic, tempValue, descript, chars[i].outPutElement);   
}  
  

Сообщение об ОШИБКЕ:

Ошибка типа: символы [i] не определены fiveDaysForecastCityWeatherLoad_Copy http://127.0.0.1:5501/model/reserByra-model.js:129 обратный вызов обещания*fiveDaysForecastCityWeatherLoad_Cop

Комментарии:

1. ваш цикл for неверен, len = chars.length должен быть i < chars.length

2. for (let i = 0; len = chars.length; i ) { <— ваше сравнение неверно…. это всегда будет true (если chars не пусто)

3. @George, я пробовал это раньше, и это не сработало. Я изменил это сейчас и попробовал, теперь по какой-то причине он работает нормально. Большое спасибо. Но затем я сталкиваюсь с другой проблемой, когда отображаются другие элементы (дата, значок и temp), но не последний «descript» .

4. вы не включили data в свой фрагмент кода, поэтому я не могу помочь вам с проверкой того, что описание существует в data

5. @George описание существует в данных, и у меня даже есть console.log(), и оно отображается, но не отображается на экране. 4-й reserByra-model.js:141:25 Индекс равен 35 reserByra-model.js:129:25 День: 5 прогноз reserByra-model.js:136:25 2020-11-10 06:00:00 Резервная копия-model.js:137:25 15.24 Резервная копия-model.js:138:25[чистое небо] reserByra-model.js:139:25 01n