假设我有一个对象数组(为了更简单的显示目的,我将其显示为数组)
[ 'TEST', 'NEW', 'ALPHA', 'ZOO', 'WHATEVER' ]
我需要按字母顺序对其进行排序(简单的部分),但是,我需要以某种方式对其进行排序,即某个单词,可以说NEW
将会在最后结束。
[ 'ALPHA', 'TEST', 'WHATEVER', 'ZOO', 'NEW' ]
这是我排序的函数
var sortedWords = function(a, b) {
return a.word > b.word ? 1 : -1 ;
};
所以,我得到了sortedWords数组,然后再次检查它,创建另一个数组并将单词推入新数组,除非单词等于NEW
。在这种情况下,我将其放在一边并附加到这个新数组的末尾,然后再返回它。必须有一种更好、更有效的方法来做到这一点。
谢谢。
改变你的比较器来寻找NEW
first:
function (a, b) {
if ((a.word === 'NEW') != (b.word === 'NEW')) {
return a.word === 'NEW' ? 1 : -1;
}
return a.word > b.word ? 1 :
a.word < b.word ? -1 : 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)