【发布时间】:2016-07-05 19:47:44
【问题描述】:
我知道我们可以定义 json 对象数组的自定义排序函数。但是,如果订单既不是desc nor asc,又会怎样。例如,假设我的数组看起来像:
[ {
name: 'u'
},
{
name: 'n'
},
{
name: 'a'
},
{
name: 'n',
}
]
输出应如下所示:
[ {
name: 'n'
},
{
name: 'n'
},
{
name: 'a'
},
{
name: 'u',
}
]
所有以n 开头的名称都会先排序,然后再排序。我尝试了以下自定义排序功能:
_sortByName(a, b){
if (a.name === 'n'){
return 1;
} else if(b.name === 'n'){
return 1;
} else if(a.name < b.name){
return 1;
} else if(a.name > b.name){
return -1;
}
}
但是对象返回的顺序是错误的。这里出了什么问题?
【问题讨论】:
-
现在返回什么?
-
if (a.name === 'n')和if (b.name === 'n')都返回1,这似乎是不正确的。
标签: javascript arrays sorting