2017-08-24 4 views
4

内の文字列のソート配列Iは、文字列の配列を持っている:配列項目のJavascriptを - カスタム方法

var players = [{Name: player1name, Surname: player1surname, Position: "Centre back"}, {Name: player2name, Surname: player2surname, Position: "Striker"}, {Name: player3name, Surname: player3surname, Position: "Full back"}, {Name: player4name, Surname: player4surname, Position: "Goalkeeper"}, {Name: player5name, Surname: player5surname, Position: "Midfielder"}, {Name: player6name, Surname: player6surname, Position: "Winger"}]; 

注文は常に同じではありません。 私はそのようになるように配列をソートしたい:ゴールキーパー、フルバック、センターバック、ミッドフィルダー、ウィンガー、ストライカー。 私はenumについて考えていますが、私はこのような状況でそれらを使用する方法を知らない。

+2

あなたが希望の順序を知っている場合は、なぜあなたはこの順序で配列を定義していませんか? – trincot

+0

注文するロジックは? –

+0

@trincot特定のチームの選手をデータベースから取得して、選手が選別されないので、私は選ぶことができません。すべてのプレーヤーはプロパティ "位置"を持っています。 – user7479651

答えて

4

オブジェクトをソート順に使用して、その差で並べ替えることができます。

var players = ["Centre back", "Striker", "Full back", "Goalkeeper", "Midfielder", "Winger"], 
 
    order = { Goalkeeper: 1, 'Full back': 2, 'Centre back': 3, Midfielder: 4, Winger: 5, Striker: 6 }; 
 
    
 
players.sort(function (a, b) { 
 
    return order[a] - order[b]; 
 
}); 
 

 
console.log(players);

+1

オブジェクトを使って手作業でオーダーを定義できる場合は、配列自体を変更することができます。 upvoteをしてください。 –

+1

私はそれが単なる単純な配列だと思って、後でオブジェクト内のより多くのデータで使用するためです。 –

+0

うん。その場合を考えることができます。 –

関連する問題