Невозможно получить длину массива и элементы - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть массив объектов в React. Моя проблема в том, что я не могу взять элементы или длину массива. Вот изображение этого в консоли:

consoled array and its length

Я думаю, data.length должна принимать длину массива, нет?

Я печатаю это так:

  console.log('array length:', searchResult.length);
  console.log('array:', searchResult);

Как я могу получить правильный массив, но неправильную длину? Моя конечная цель - отобразить элементы массива в абзацах, поэтому мне нужно иметь длину и значение каждого из элементов.

Вот как я создаю свой массив:

 fetch(url)
    .then(res => res.json())
    .then(post => {
      const result = post.results;
      for (let index = 0; index < result.length; index += 1) {
        const obj = {
          title: result[index].title,
          rating: result[index].vote_average,
          year: result[index].release_date.substr(0, 4),
        };

        tempArray.push(obj);
      }
    })

после завершения выборки я устанавливаю состояние реакции: setSearchResult (tempArray);

ОБНОВЛЕНИЕ: я решил свою проблему с помощью устранение за l oop. Я помещаю результат в состояние реакции, как только получаю его. Например:

   fetch(url)
      .then(res => res.json())
      .then(post => setSearchResult(post.results))
      .catch(error => {
        console.log(error);
      });
  };

setSearchResult - это состояние реакции, которое я определил ранее:

 const [searchResult, setSearchResult] = useState([]);

И теперь он может получить длину моего массива searchResult, выполнив:

 searchResult.length;

1 Ответ

0 голосов
/ 24 февраля 2020

, поскольку ваши данные находятся внутри массива как объект i, e в парах ключ-значение, вы можете рассчитать длину ключей.

В вашем случае вы можете использовать как Object.keys(data).length

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