我有一个像这样的JS排序:
records.sort(function(a, b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
});
这个方法是有效的,但我的一些记录是""
或者null
。
空记录列在最前面,但我希望它们在最后面。
我认为有比这更好的方法:
if (a == "") a = "zzzz";
但是我该如何做到这一点?
我有一个像这样的JS排序:
records.sort(function(a, b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
});
这个方法是有效的,但我的一些记录是""
或者null
。
空记录列在最前面,但我希望它们在最后面。
我认为有比这更好的方法:
if (a == "") a = "zzzz";
但是我该如何做到这一点?
也许可以这样做:
records.sort(function(a, b) {
if(a === "" || a === null) return 1;
if(b === "" || b === null) return -1;
if(a === b) return 0;
return a < b ? -1 : 1;
});
records.sort((a,b) => a ? b ? a.localeCompare(b) : -1 : 1);
简化的方式:
['a', '!', 'z','Z', null, undefined, '']
.sort((a, b) => !a ? 1 : (!b ? -1 : (a.localeCompare(b))) )