JS sort()为空结束
JS sort() empty to end
我有一个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);
Eric Hotinger的答案
较短路径:
['a', '!', 'z','Z', null, undefined, '']
.sort((a, b) => !a ? 1 : (!b ? -1 : (a.localeCompare(b))) )
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 循环结束/推送到数组之前在页面上呈现EJS
- 在另一个函数成功结束后调用该函数
- 在动画结束之前调用函数
- sort而不是排序javascript
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 使用nunjucks时发生块结束错误
- HTML5获取弧的坐标's结束
- 内容结束时停止无限滚动
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 如何在视频上显示海报图像使用Jquery结束
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 处理第三方库发送的ajax请求的开始和结束事件
- 结束后Javascript倒计时计时器重定向
- 如何在鼠标悬停时将对象从起始位置移动到结束位置,然后在鼠标悬停后再次移动
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 使用ajax的输入jquery意外结束
- settimeout调用的函数未结束
- JS sort()为空结束