2016-08-11 17 views
0

サーバーからオブジェクトの配列を受け取っていますが、順序が違っていて戻りたいと思います。残念ながら、私が望む順序はアルファベット順ではありません。私は配列要素を並べ替える最良の方法は何か、と思っています。また、もし私が利用できる方法があればarray.sort配列の要素をJavaScriptのカスタム順序で配置する最も良い方法

function arraySort(array) { 
    let orderedArray = new Array(); 
    array.map(item => (
    item.key === 'Person' ? orderedArray[0] = item : null, 
    item.key === 'Place' ? orderedArray[1] = item : null, 
    item.key === 'Thing' ? orderedArray[2] = item : null 
)); 
    return orderedArray; 
} 
+2

あなたは[ 'sort'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/にカスタム比較関数を渡すことができることを知っていました参照/グローバル_オブ​​ジェクト/配列/ソート)? –

+6

[javascriptでカスタムソート関数を定義する方法は?](http://stackoverflow.com/questions/5002848/how-to-define-custom-sort-function-in-javascript) –

+0

私はそうは思わないこれは複製です。 OPは任意の並べ替えを実装する方法を尋ねています – naomik

答えて

2

のようなことをやっているだろう:私は今働いていますか。

var order = ['Person', 'Place', 'Thing']; 
 
var a = [ 
 
    { key: 'Place' }, 
 
    { key: 'Thing' }, 
 
    { key: 'Place' }, 
 
    { key: 'Person' }, 
 
    { key: 'Place' }, 
 
    { key: 'Thing' }, 
 
    { key: 'Person' } 
 
]; 
 

 
var b = a.sort(function(a,b) { 
 
    return order.indexOf(a.key) - order.indexOf(b.key); 
 
}); 
 

 
console.log(b);

+0

素敵な作業です。これは、おそらくあなたがOPからより多くを知らずに与えることができる最高の答えです。 – naomik

+0

ありがとう!これはまさに私が探していたものです! – JLegendre

+1

@JLegendre次回はあなたの質問にサンプル入力と予想される出力を投稿します。 – naomik

-1

は、私はあなたが行くここでは、この

​​
関連する問題