ForEach-显示来自API的结果

时间:2019-03-11 14:18:32

标签: javascript api foreach mapping array.prototype.map

在此对象数组中尝试访问“ title”值时遇到麻烦。

这是一个giphy api,您可以在下面看到,我正在使用fetch来调用该api。然后使用forEach遍历数据。

我可以调用api和控制台日志一个包含5个对象的数组。但是,我认为我无法正确映射数据。

例如,当我console.log console.log('foreach', elem);时,我将在控制台中返回以下内容:

foreach 0
foreach 1
foreach 2
foreach 3
foreach 4

但是,当我console.log('foreach', elem.title);时,我将返回undefined。我基本上无法访问对象中的任何数据,因为我一直都处于未定义状态。

这是我的代码:

 fetch('http://api.giphy.com/v1/gifs/search?q=ryan+gosling&api_key=MY_API_KEY&limit=5')
    .then((res) => {
      return res.json();

    })
    .then((data) => {
      console.log(data.data);    
      // This returns a full array object of data

      let result = '<h2> Random User Info From Jsonplaceholder API</h2>';

      Object.keys(data.data).forEach(elem => {
        console.log('foreach', elem);


        result +=
                `<div>
                 <h5> User ID: ${elem} </h5>

                  </div>`;
        place.innerHTML = result;
      });
    });

基本上,我认为我在ForEach中做错了事。

1 个答案:

答案 0 :(得分:0)

您说过std::ifstream hndl(filename, std::ios::in | std::ios::ate); // and use handler in function which iterate backward void print_last_lines_using_circular_buffer(std::ifstream& stream, int lines) { circular_buffer<std::string> buffer(lines); std::copy(std::istream_iterator<line>(stream), std::istream_iterator<line>(), std::back_inserter(buffer)); std::copy(buffer.begin(), buffer.end(), std::ostream_iterator<std::string>(std::cout)); } 是对象数组。如果您将在data上使用Object.key()。它将返回array的索引,即array。您需要直接在数组上调用0,1,2,3...

forEach()

要访问该项的属性,请使用Dot Notation

data.data.forEach(elem => {
        console.log('foreach', elem);
});