javascript - js先依照age排序 age相同再依照top排序
PHP中文网
PHP中文网 2017-07-07 10:34:15
0
5
1157
雷雷
PHP中文网
PHP中文网

认证0级讲师

全部回覆(5)
扔个三星炸死你

這個囉嗦的啊...

obj.sort( function(curr,next) {
    return !!( curr.age-next.age )? curr.age-next.age: curr.top-next.top;
} );

這不就好了嗎

phpcn_u1582

用自備的就是了

    obj = obj.sort((a, b) =>  { return a.age - b.age || b.top - a.top;} );
    console.log(obj);
    
    

因為你說的是top從高到低排序這種寫法是數字越大越在前面
你要是想要越小的話
你修改一下位置就好了b.top - a.top 改成a.top - b.top

習慣沉默

線上體驗 https://jsfiddle.net/hguyjgs8/1/

//假设top 不大于1000, 大于1000的,适度修改
var obj = [{
  id: 1,
  age: 20,
  top: 5
}, {
  id: 3,
  age: 21,
  top: 6
}, {
  id: 2,
  age: 20,
  top: 8
}]

function pad(num, size) {
  var s = num + "";
  while (s.length < size) s = "0" + s;
  return s;
}

obj.sort((a, b) => pad(a.age, 2) + pad(1000-a.top, 3) > pad(b.age, 2)  + pad(1000-b.top, 3)).forEach((i) => {
    document.writeln(JSON.stringify(i)+'<br>');
});
三叔

雷雷

https://jsfiddle.net/sojxjqpf/

漂亮男人

誰先

雷雷

下一個

雷雷

S

誰先升序。

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!