认证0级讲师
这个啰嗦的啊...
obj.sort( function(curr,next) { return !!( curr.age-next.age )? curr.age-next.age: curr.top-next.top; } );
这不就好了吗
用自带的就是了
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/
谁先升序。
这个啰嗦的啊...
这不就好了吗
用自带的就是了
因为你说的是 top从高到低排序 这种写法是数字越大越在前面
你要是想要越小的话
你修改一下位置就好了 b.top - a.top 改成 a.top - b.top
在线体验 https://jsfiddle.net/hguyjgs8/1/
雷雷
https://jsfiddle.net/sojxjqpf/
谁先
雷雷下一个
雷雷S
谁先升序。
雷雷