我有以下结构:
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
之前?nickname="aaa" < nickname=""
真的成立吗? - hindmostnickname="aaa" < name="bbb"
。这些排序规则很奇怪吗?是的,但这是OP想要的。 - Regent