Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中循环?_Javascript_Json_Loops - Fatal编程技术网

如何在javascript中循环?

如何在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]。游戏;

我收到了来自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]。游戏;
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))