排序陣列I具有以下結構:由密鑰對象
var participant0 = {
name : "",
nickname : "",
number "99999"
} ;
var participant1 = {
name : "bbb",
nickname : "",
} ;
var participant2 = {
name : "",
nickname : "aaa"
} ;
var participant3 = {
name : "ccc",
nickname : ""
} ;
,我已經含有結構的實例的數組:
var array = [participant0, participant3, participant1, participant2];
我想排序此陣列由字母。首先名稱,暱稱第二。如果這兩個鍵不存在,我想檢查數字鍵並將此元素放在排序列表的末尾。
預期結果:
var array = [participant2, participant1, participant3, participant0];
下面的代碼(由 「AAA」, 「BBB」, 「CCC」, 「9999」 已經整理對象)工作正常進行排序姓名或暱稱,但我不知道如何在排序列表的末尾提出的項目,如果有數字鍵:
fav_list.sort(function(x, y) {
return (x.participant.name || x.participant.nickname).localeCompare(y.participant.name || y.participant.nickname);
});
爲什麼'participant2'的結果應該是前'participant1'?真的有'暱稱=「aaa」<暱稱=「」'? – hindmost
比較「2」和「10」哪一個最先? –
@最後'暱稱=「aaa」<名稱=「bbb」'。這些排序規則很奇怪嗎?是的,他們是,但這是OP想要的。 – Regent