在此对象数组中尝试访问“ 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中做错了事。
答案 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);
});