2017-02-12 167 views
-1

什麼是按特定順序對數組進行排序的可重用和可擴展的方法?Angular2 - 將數組按特定順序排序

從後臺我得到一個隨機排列的項目列表。該列表必須按特定順序排序,供用戶查看。排序必須在前端完成。我無法觸摸後端。

例子:

項目3,項目1,項目2或項目1,項目3,項目2,...

- >排序

項目1, 項目2,項目3

任何想法的?

回答

0

你可以使用下面的代碼:

function sortIt(arr){ 
 
    return arr.sort((a,b) => a.replace(/[a-z]+/gi, '') - b.replace(/[a-z]+/gi, '')); 
 
} 
 

 
console.log(sortIt(['Item3', 'Item1', 'Item2'])); 
 
console.log(sortIt(['Item12', 'Item3', 'Item1', 'Item2', 'Item4'])); 
 
console.log(sortIt(['Item1', 'Item1', 'Item2']));

+0

的項目純粹是假設性的。我從後端獲得各自具有特定密鑰的環境。 – user2963570

+0

@ user2963570它將適用於以某個數字結尾的所有元素,因爲排序功能依賴於它。 –

+0

是的,這是真的,但在我的情況下,我沒有任何數字。我得到的環境返回了一個特定的關鍵字,例如:dev,acc,....基於該關鍵字,我需要在它應該是的索引上設置環境。 – user2963570

0

最近我貼出答案類似的問題,請參見gist,它可以像這樣使用:

[{key: 'dev'},{key: 'acc'},{key: 'prd'}].sort(compare<{key:string}>({property: 'key'}));