2017-07-19 15 views
1

ソート順に基づいて配列をソートしたい。typescript配列ランダムソート順のソート

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

私は、

  • 犬= 1個の
  • リンゴ= 3
  • 男= 2

だから私は犬のように、この配列をソートしたいようなソート順序を持っています男、リンゴ。

typescriptでこれを行う方法。

+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

配列のように配列arrayName:Array <{key:string、value:string}> = [];そのthrowingエラーdata.sort(d1、d2)=>(d1、d2)=> {} – Jane

+1

はい、コードにはタイプミスがあります。テキスト 'd1、d2)=>'の最初のインスタンスを削除し、末尾に ');'を追加します。 – jcalz

関連する問題