对包含具有对象数组

时间:2017-02-08 03:32:35

标签: javascript arrays sorting

这是对象示例中的对象数组:

var ActivitiesObject = [{
    activities: [{
        id: someid
        order: 1
    }, {
        id: someid
        order: 0
    }]
}, {
    activities: [{
        id: someid
        order: 0
    }, {
        id: someid
        order: 1
    }]
}];

我想要做的是对ActivityObject进行排序,以便活动中的对象基于订单号按顺序排列,因此在排序完成后,它应该如下所示:

var ActivitiesObject = [{
    activities: [{
        id: someid
        order: 0
    }, {
        id: someid
        order: 1
    }]
}, {
    activities: [{
        id: someid
        order: 0
    }, {
        id: someid
        order: 1
    }]
}];

现在,我尝试了这个:

ActivitiesObject.sort(function(a, b) {
    return a.activities.order - b.activities.order;
});

但那没用。什么是正确的语法或方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

您希望对activities进行排序,而不是ActivitiesObject,因此您应该遍历外部数组,对每个内部数组进行排序。

ActivitiesObject.forEach(function(obj) {
    obj.activities.sort(function(a, b) {
        return a.order - b.order;
    });
});
相关问题