我想知道如何将来自Facebook API调用的响应存储到Javascript数组中。
这是我正在拨打的电话:
FB.api('/MYAPPID/scores/?fields=user', function(response) {
for (var i = 0; i < response.data.length; i++){
var grabbedarray = response.data[i].user.id;
console.log(grabbedarray);
}
})
调用
FB.api('/MYAPPID/scores/?fields=user'
返回一个数据集,该数据集具有数组中每个元素的“名称”和“ id”属性,但是我只对存储数组的“ id”部分感兴趣。上面的代码遍历调用的响应,检查数组的每一行中的
user.id
,然后console.log显示该行的ID。这意味着var grabbedarray
在控制台中出现几次,每次显示一个不同的ID。我知道为什么会这样,但是我试图将所有id存储到一个数组中,然后我要console.log记录下来。因此,控制台中的最终结果应类似于:
[456345624, 256456345, 253456435727, 376573835, 2652453245]
我尝试将调用更改为
FB.api('/MYAPPID/scores/?fields=user.id'
,以希望响应仅显示ID列表,但不起作用。有谁知道如何解决这个问题?
先感谢您!
最佳答案
为了保持您使用的方法,可以将找到的每个新ID推送到在for循环之外定义的数组中。
var idArray = [];
FB.api('/MYAPPID/scores/?fields=user', function(response) {
for (var i = 0; i < response.data.length; i++){
idArray.push(response.data[i].user.id);
}
console.log(idArray);
})
您还可以使用
map
将响应数组转换为所需的数组。var idArray = [];
FB.api('/MYAPPID/scores/?fields=user', function(response) {
idArray = response.data.map(function(x){ return x.user.id });
console.log(idArray);
})
关于javascript - 如何将Facebook Graph API响应存储为Javascript数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37033167/