У меня есть массив объектов в React. Моя проблема в том, что я не могу взять элементы или длину массива. Вот изображение этого в консоли:
![consoled array and its length](https://i.stack.imgur.com/aar8Y.png)
Я думаю, 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;