sort函數實現多條件排序
阿新 • • 發佈:2018-10-30
score 多重排序 我們 ava value rip 一個 ont 定義
js的sort方法,我們一般傳入一個回調用於單排序,也就根據某一個條件排序,那麽一個場景需要多條件排序(多重排序),我們怎麽處理呢?
如下例子,我們按學生的總分排序,如果總分相等,我們再按照語文成績排序。
var jsonStudents = [ { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" }, { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "97" }, { 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" } ]; jsonStudents.sort(function(a, b) { var value1 = a.totalScore, value2 = b.totalScore; //總分相同 if (value1 === value2) { // 按語文分數降序排序 return b.Chinese - a.Chinese; } // 總分不同,降序排序 return value2 - value1; }); console.log("jsonStudents :", jsonStudents);
關鍵點在於sort回調如何定義排序規則
sort函數實現多條件排序