javascript - js先按照age排序 age相同再按照top排序
PHP中文网
PHP中文网 2017-07-07 10:34:15
0
5
1184
雷雷
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学习者快速成长!