将$ .each结果存储到数组中?

时间:2013-08-17 00:12:36

标签: javascript jquery arrays json

我有$.each获取Facebook好友列表。

以下是$.each代码

$.each(response.data, function(index,friend) {
    alert(friend.name + ' has id:' + friend.id);
}

现在我如何将这些数据存储在数组中,就像这个数组一样

friends = [
    { "name": "John"  , "id": "1" },
    { "name": "Anna"  , "id": "2" },
    { "name": "Peter" , "id": "3" }
];

2 个答案:

答案 0 :(得分:5)

$.map$.each类似,但它返回函数返回值的数组:

var friends = $.map(response.data, function(index, friend) {
    return {
        name: friend.name,
        id: friend.id
    };
});

虽然......因为你似乎已经拥有了具有这些属性的对象数组,为什么不直接使用呢?

答案 1 :(得分:2)

尝试var friends = response.data;

您可能会获得额外的字段,但response.data已经是包含nameid字段的对象数组。它也可能包含其他字段。

因此,您可以使用response.data$.each处理$.map以消除其他字段,具体取决于您的应用,可以按原样使用response.data进一步处理。