zoukankan      html  css  js  c++  java
  • 数组对象排序,先根据某个属性排序,然后再此基础上根据另外一个属性值排序,不会打乱第一个排序【先根据年份,再根据月份】

    // 排序,先进行某个对象属性排序,然后在此基础上进行另一个属性排序[先按年份,再按月份]
    export function multisort(array, ...compairers) {
        return array.sort((a, b) => {
            for (const c of compairers) {
                const r = c(a, b);
                if (r !== 0) {
                    return r;
                }
            }
        });
    }
    var aee = [
    {"key":{"Year":2019,"Month":1},"sum":1},
    {"key":{"Year":2018,"Month":1},"sum":2},
    {"key":{"Year":2019,"Month":6},"sum":1},
    {"key":{"Year":2018,"Month":4},"sum":1},
    {"key":{"Year":2019,"Month":2},"sum":2}
    ] console.log(aee);
    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(aee,(a, b) => b.key.Year - a.key.Year, (a, b) => b.key.Month - a.key.Month)
    //
    结果
    [{"key":{"Year":2019,"Month":6},"sum":1},
    {"key":{"Year":2019,"Month":2},"sum":2},
    {"key":{"Year":2019,"Month":1},"sum":1},
    {"key":{"Year":2018,"Month":4},"sum":1},
    {"key":{"Year":2018,"Month":1},"sum":2}]
  • 相关阅读:
    ORACLE CLIENT客户端安装步骤详解
    mkswap 把一个分区格式化成为swap交换区
    编译安装lnmp
    使用源代码安装lnmp
    查看nginx编译安装
    linux lnmp编译安装
    nginx编译安装
    lnmp脚本
    搭建LAMP测试环境
    绝路上的桥
  • 原文地址:https://www.cnblogs.com/sjw-dmwz/p/10233459.html
Copyright © 2011-2022 走看看