2017-02-24 109 views
1

我要排序的定製方式陣列自定義排序方法

鑑於ar​​ary:

arry = [0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,21,21,22,22,23,23] 

預期輸出:

[21,22,22,23,23,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18] 
+5

和你的努力呢? – Rajesh

+0

我們可以得到你想要的代碼嗎? –

+0

請詳細解釋.. – Confused

回答

9

你可以先檢查值和首先大於20的排序號碼。

var array = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 22, 23, 23], 
 
    predicate = function (v) { return v > 20; }; 
 

 
array.sort(function(a, b) { 
 
    return predicate(b) - predicate(a) || a - b; 
 
}); 
 

 
console.log(array);

+1

不錯的努力.... –

+1

你讓編碼看起來很簡單。 #尊重 – Rajesh