2017-07-19 101 views
1

我想基於排序順序對數組進行排序。使用隨機排序順序打印字體數組排序

public array1: Array<string> = []; 
array.push(some string values); //E.g dog,apple,man 

我有一個排序順序像

  • 狗= 1
  • 蘋果= 3
  • 人= 2

所以我想解決這陣像狗,男人,蘋果。

如何在打字稿中做到這一點。

+0

你能告訴我你的數組值嗎?那麼只有我們可以對訂單進行排序。\ –

+0

數組值是隨機的。 – Jane

+0

只是這樣我可以得到這個直線,你想隨機洗牌清單? – toskv

回答

3

如果你在地圖(對象)中有你的訂單,你可以這樣做。

let list = ['dog', 'cat','apple']; 
let sortOrder = { 
    dog: 1, 
    cat: 3, 
    apple: 2 
} 

list.sort((a, b) => sortOrder[a] - sortOrder[b]); 

你可以看到一個工作操場例子here

2

我想你使用TypeScript(在你的問題標記)。

let data = [ 
    {value:"dog", key:1}, 
    {value:"apple", key:3}, 
    {value:"man", key:2}, 
]; 

data.sort((d1, d2) => { 
    if (d1.key > d2.key) return 1; 
    if (d1.key < d2.key) return -1; 
    return 0; 
}); 

您已經增進了你的問題,那麼這個答案是不相關的了(和註釋中提到的固定代碼)。

+0

如果我聲明array public arrayName:Array <{key:string,value:string}> = [];那麼它的投擲錯誤data.sort(d1,d2)=>(d1,d2)=> {} – Jane

+1

是的,代碼有錯別字。刪除文本'd1,d2)=>'的第一個實例並添加');'到最後。 – jcalz