繁体   English   中英

如何将Facebook Graph API响应存储为Javascript数组?

[英]How to store a Facebook Graph API response as a Javascript Array?

我想知道如何将来自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);
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM