我正在尝试使用for循环调用REST API,并将输出存储到数组中。但是对于每个其余的API调用,输出显示为不同的数组,而不是一个数组中的所有内容
for each (name in car.cars){
for(i=0; i<count;i++){
var arr = [];
var newid = car.cars[i].name;
var url = "myhost"
var method = "GET"
var response = "output from REST call"
arr.push(response)
}
}
答案 0 :(得分:0)
但是对于每个其余的API调用,输出显示为不同的数组,而不是一个数组中的所有内容
“输出”在哪里,代码中什么也没有。
您的问题是,您在var arr = [];
循环中声明了for
。
在循环开始之前初始化数组,然后将响应添加到该数组中。
代替您为for(i=0; i<count;i++)
的每次迭代创建一个新数组
答案 1 :(得分:0)
退后一步,再次查看您的代码。您在哪里声明数组?在循环内部。
接下来,问问自己;该数组的范围是什么?仅在循环内。即使只是在外部循环中,它也不会停留在周围,因为一旦循环结束,数组就会消失。
创建数组并从循环之外(它们都使用)使用它。
进一步阅读:Declaring variables inside or outside of a loop
更新4/30/2019:感谢@AuxTaco,我剔除了我对JS范围的不准确描述。请查看他评论中的链接,以获取更多有关此内容的阅读!