84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
认证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
誰先升序。
雷雷