笔记二十四:js 数组 多字段排序

475 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

var list3= [
        { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" },
        { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "97" },
        { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "10" },
        { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "80" },
        { name: "LiLei", totalScore: "185", Chinese: "88", math: "97" },
        { name: "XiaoMing", totalScore: "196", Chinese: "96", math: "100" },
        { name: "Jim", totalScore: "196", Chinese: "98", math: "98" },
        { name: "Joy", totalScore: "198", Chinese: "99", math: "99" },
      ];
function sortByArr(arr, rev) {// arr 排序的字段,rev:false 倒序,true 正序
    if (rev == undefined) {
      rev = 1;
    } else {
      rev = rev ? 1 : -1;
    }
    return function (a, b) {
      for (var i = 0; i < arr.length; i++) {
        let attr = arr[i];
        if (a[attr] != b[attr]) {
          if (a[attr] > b[attr]) {
            return rev * 1;
          } else {
            return rev * -1;
          }
        }
      }
    };
  }

list3.sort(sortByArr(["totalScore", "Chinese","math"],false))