2017-08-24 22 views
4

字符串數組排序我有一個字符串數組:使用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"}]; 

數組項目的順序並不總是相同的。 我想對陣列進行排序,如下圖所示:守門員,後衛,中後衛,中場,邊鋒,前鋒。 我正在考慮枚舉,但我不知道如何在這種情況下使用它們。

+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

是的。可以想到這種情況。 –

相關問題