将$.每个结果存储到数组中

store $.each result into array?

本文关键字:数组 存储 结果      更新时间:2023-09-26

我有$.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" }
];

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

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

尽管…既然你似乎已经有了一个具有这些属性的对象数组,为什么不直接使用它呢?

尝试var friends = response.data;

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

因此,虽然您可以使用$.each$.map处理response.data以消除其他字段,但根据您的应用程序,可以按原样使用response.data,而无需进一步处理。