【发布时间】:2014-02-22 16:38:11
【问题描述】:
exports.getFbFriendsFromFbIdAndFbAccessTokenTest=function(id,token){
var request = require('request');
var urls = "https://graph.facebook.com/" + id + "/friends?access_token=" + token;
request(urls, function(error, response, body) {
if (!error && response.statusCode == 200) {
var output = JSON.parse(body);
output.sort(function(a,b){
if (a.name > b.name)
return 1;
if (a.name < b.name)
return -1;
// a must be equal to b
return 0;
});
console.log(output);
}
});
}
我想按升序对 facebook 好友列表进行排序。目前我在控制台中得到以下结果:
`{ data: `
[ { name: 'xxx', id: '547dsad1' },
{ name: 'xxx', id: '55324iii' },
{ name: 'xxx', id: '55yyy' },
...........
........
但是它给出了对象输出没有属性排序的错误。 我也用过 Array.prototype:
Array.prototype.sortByProp = function(p){
return this.sort(function(a,b){
return (a[p] > b[p]) ? 1 : (a[p] < b[p]) ? -1 : 0;
});
}
output.sortByProp('name');
然后它显示对象输出没有属性sortByProp的相同错误。 有没有其他方法可以解决这个问题?
【问题讨论】:
-
你确定
output100% 是一个数组而不是一个对象Array.isArray(obj) -
您是否尝试过将
output = JSON.parse(body)记录到控制台以查看您实际使用的内容?看起来您要“排序”的变量不是数组。 (编辑:看起来 dark_ruby 打败了我)
标签: arrays node.js sorting facebook-graph-api