Элементы в моем массиве не определены, даже если в нем есть данные - PullRequest
0 голосов
/ 17 мая 2019

Я динамически назначаю массив по данным из HTTP-запроса.Затем я пытаюсь сгенерировать что-то из данных в этом массиве - и я console.log сделал массив, чтобы я знал, что в нем есть данные.Тем не менее, при его цикле каждый ключ не определен.

По сути, каждый элемент, который я получаю с сервера REST, имеет идентификатор, обозначающий, что они каким-то образом связаны друг с другом.Сейчас я назову это «SlotID».

Я постараюсь сделать его очень простым.Итак, вот несколько вырезов.

let items = new Array(23); // The highest "SlotID" can be 22, and 0 isn't used.
fetch(URI)
.then(results => {
    return results.json();
}).then(data => {
    for (var itemKey in data.Results) {
        var item = data.Results[itemKey]; // This is all just the fetch.
        if (items[item.SlotID] != null) { // I'm creating a new Array for each SlotID here, and if that array is already created I'm pushing to it.
            items[item.SlotID].push(item);
          } else {
            items[item.SlotID] = [item];
          }
        }
    }
});

Это (на данный момент с помощью тестового вызова) заполняет элементы [1].Я подтвердил наличие массива через console.log (items);который выводит:

(23) […] 1: (2) […] 0: Объект {BaseParamValue0: 19, BaseParamValue1: 21, BaseParamValue2: 23,…} 1: Объект {BaseParamValue0: 10, BaseParamValue1: 10, BaseParamValue2: 17,…} length: 2: Array [] length: 23: [

Так что теперь у меня в основном есть массив массивов объектов.

      for (var i = 0; i < 22; i++) {
        console.log(i + " " + items[i]);
      }

Однако, это выводит 1 как неопределенное, console.log (items [1]) также выводит неопределенное.Почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...