认证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
誰先升序。
雷雷