如何在javascript中循环?
我收到了来自API的数据响应 以及如何循环这些数据,因为我只得到第一个数据。这个数据不是数组如何在javascript中循环?,javascript,json,loops,Javascript,Json,Loops,我收到了来自API的数据响应 以及如何循环这些数据,因为我只得到第一个数据。这个数据不是数组 data = [{"gamename":"game 1","gamelink":"link 1","image_link":"image 1","startfrom":"1"},{"gamename":"game 2","gamelink":"link 2","image_link":"imgae 2","startfrom":"2"}] var json=response.data[0]。游戏;
data = [{"gamename":"game 1","gamelink":"link 1","image_link":"image 1","startfrom":"1"},{"gamename":"game 2","gamelink":"link 2","image_link":"imgae 2","startfrom":"2"}]
var json=response.data[0]。游戏;
log(json);
if(Array.isArray(json)){
log('array');
}否则{
log('notarray');
}
for(var i=0;i
我怀疑您的json已经被解析,您不需要重新解析它。如果内容类型头是
application/json
,很多http客户端都会这样做
尝试:
var games=response.data[0]。游戏
对于(var i=0;i
您可以使用array.map()、array.forEach()您只需使用forEach或for(基于长度)或for of循环即可
范例
要以您希望的格式打印数据,请使用
for (let element of data) {
console.log('gamename : ' +element.gamename+ " - game link: " +element.image_link);
}
试一试
for(var i=0;i正如@Robby Cornelissen所说,您正在将数组包装到另一个数组中,这是不必要的,并且破坏了您的代码。for循环只在外部数组中的单个元素上迭代
另外,API响应将JSON字符串作为字符串值嵌入到JSON属性中是很奇怪的
response={data:[{games:`[{“gamename”:“game 1”,“gamelink”:“link 1”,“image\u link”:“image 1”,“startfrom”:“1”},{“gamename”:“game 2”,“gamelink”:“link 2”,“image\u link”:“imgae 2”,“startfrom”:“2”}}
var json=response.data[0]。游戏;
log(json);
var array=JSON.parse(JSON);
console.log(数组);
对于(var i=0;i
正如您所说的,如果您的数组看起来像上面的数组,请使用下面的代码
data.forEach((el)=>console.log(el))
您将获取该数组中的每一个对象。如果要从提取中获取此数据,则需要在提取中执行res.json()
,例如:
一些数据
[
{“游戏名称”:“游戏1”,“游戏链接”:“链接1”,“图像链接”:“图像1”,“开始自”:“1”},
{“游戏名称”:“游戏2”,“游戏链接”:“链接2”,“图像链接”:“imgae 2”,“起始日期”:“2”}
]
获取(“someUrl”)
.then(res=>res.json())//这里解析响应
//在这里,您可以使用forEach在响应中循环,并通过分解结构获得名为“gamename”和“gamelink”的项
.then(game=>game.forEach({gamename,gamelink})=>console.log(`gamename:${gamename}-game link:${gamelink})//在这里记录数据,如果这与上面的一样,您可以这样做
为什么要将已经是数组的JSON包装到另一个数组中?为什么要使用数组[0][i]?我认为它应该只是数组[i]。您正在将输出预先固定为那里的第一个元素。这回答了您的问题吗?已经有[
和]
围绕两个对象。[{},{}]
是一个由两个对象组成的数组。无需将其包装在另一个数组中。当我检查时,是否为该数组。这不是数组。欢迎使用该数组!请使用代码、示例并在解释中尽可能清晰完整地回答。是否想知道循环或迭代对象和数组的用法
for (let element of data) {
console.log(element );
}
for (let element of data) {
console.log('gamename : ' +element.gamename+ " - game link: " +element.image_link);
}
for(var i =0; i<data.length; i++)
{
console.log(data[i]['gamename']);
console.log(data[i]['gamelink']);
}
var data = [{"gamename":"game 1","gamelink":"link 1","image_link":"image 1","startfrom":"1"},{"gamename":"game 2","gamelink":"link 2","image_link":"imgae 2","startfrom":"2"}]
data.forEach((el)=>console.log(el))