js先后对某个js对象内的两个属性排序

需求

列表中先根据某id进行排序,然后id相同的再按某属性进行排序。最终显示效果如图所示:

实现代码

var data.items = [
        {'brand_id':1,'farm_id':2},
        {'brand_id':1,'farm_id':3},
        {'brand_id':2,'farm_id':4}
]
function multisort(array, ...compairers) {
    return array.sort((a, b) => {
        for (const c of compairers) {
            const r = c(a, b);
            if (r !== 0) {
                return r;
            }
        }
    });
}
multisort(data.items,(a, b) => a.brand_id - b.brand_id,(a, b) => a.farm_id - b.farm_id);
posted @ 2018-01-31 11:34  格式化lu、  阅读(1002)  评论(0编辑  收藏  举报