我正在研究javascript排序方法。所以,我想只使用不使用過濾器或映射或其他方法功能的排序進行排序。
const arr = [1,100,3,5,7,3,2,7, -1]
在上面的陣列中,我希望首先對大于 5 的數字進行排序,然后按升序對較小的數字進行排序。
Expected results are:
// [5, 7, 7, 100, -1, 1, 2, 3, 3];
同樣,我知道如何使用其他方法進行排序!
例如
const arr1 = input.filter(num => num >= 5).sort((a, b) => a - b)
const arr2 = input.filter(num => num < 5).sort((a,b) => a - b)
[...arr1, ...arr2]
但我希望只使用排序方法來解決它!
請幫我
arr.sort((a,b) => {
return (a 5) > b ? 1 : -1
})
but result is :
// [1, 3, -1, 5, 2, 7, 3, 7, 100]
uj5u.com熱心網友回復:
首先回傳一個值或另一個值是否小于 5 之間的差值 - 只有當該差值為 0 時才進行數字排序(減法)(在這種情況下,被比較的兩個值都是 5 或以上,或者兩個值都小于 5 )。
const arr = [1,100,3,5,7,3,2,7, -1];
arr.sort((a, b) =>
((b >= 5) - (a >= 5))
|| a - b
);
console.log(arr);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/530672.html
上一篇:如何在價格陣列中創建范圍
