使用提取API来自数组的奇怪结果

时间:2018-06-28 10:45:11

标签: javascript api fetch

试图弄清楚fetch(api)的方式,我遇到了这个问题。

API请求从frmo tmDB返回20个电影的数组。我的目标是从此数组中提取特定信息,并将新信息作为对象推送到数组,然后将其返回。

在此过程之后,当我console.log listOfMovieObjects数组时,我看到了完整的数组以及所需的一切。但是,我无法遍历它,因为listOfMovieObjects.length返回0,并且尝试记录listOfMovieObjects [0]返回未定义。

代码如下:

let listOfMovieObjects = [];
fetch(movieInformationRequest).then(function (response) {
    return response.json();
}).then(function (response) {
    // List of top 20 movies from tmdb
    const listOfMovies = response.results;
    // For each index in the array, create a movie object with the needed information
    listOfMovies.forEach((movie) => {
        const currentMovieInformation = {
            image: `https://image.tmdb.org/t/p/w500/${movie.poster_path}`,
            date: movie.release_date,
            time: `${Math.floor(Math.random() * 14) + 10}:${Math.floor(Math.random() * 50) + 10}`,
            title: movie.original_title,
            description: movie.overview,
            rating: movie.vote_average
        }
        // Push the object ot the listOfMovies array
        listOfMovieObjects.push(currentMovieInformation);
    })
});
// (In the chrome console) Shows an array of 20 movies object, with a length of 20
console.log(listOfMovieObjects);
// Returns 0
console.log(listOfMovieObjects.length);
// undefined
console.log(listOfMovieObjects[0]);

Chrome控制台中的屏幕截图: Screenshot

如果我要console.log在.then范围内完全相同,我将获得.length = 20和arr [0]作为我想要的对象,所以我想这是范围的问题(即使但是我不明白为什么,因为信息被推送到的数组不在范围之内。但是我想从函数中返回它。

编辑:这是api文档https://developers.themoviedb.org/3/movies/get-popular-movies

0 个答案:

没有答案