javascript - 最后将所有空值放入数组中
问题描述
我需要最后将所有空值放在数组中。下面的代码显示了我的尝试
1)此代码最后将所有空值发送到数组中,但其他值未以排序方式出现。
var dateArray = [
'','',
new Date('2019-06-28',).toISOString().slice(0, 10).replace(/-/g, "."),
'',
new Date('2019-06-01').toISOString().slice(0, 10).replace(/-/g, "."),
new Date('2019-06-02').toISOString().slice(0, 10).replace(/-/g, "."),
'',''
]
dateArray.sort(function(a, b) {
return (a ==='') - (b ==='') || a - b;
});
console.log(dateArray)
2)当我删除.toISOString().slice(0, 10).replace(/-/g, ".")
它时,它按预期工作,但在输出中显示完整日期Fri Jun 28 2019 05:30:00 GMT+0530
(印度标准时间)。我只需要显示这种格式'2019.06.28'
var dateArray = [
'','',
new Date('2019-06-28',),
'',
new Date('2019-06-01'),
new Date('2019-06-02'),
'',''
]
dateArray.sort(function(a, b) {
return (a ==='') - (b ==='') || a - b;
});
console.log(dateArray)
解决方案
您的上一个版本有效,因为
new Date() - new Date()
将日期转换为数字(自 1970 年以来的毫秒数),而:
'2019-06-01' - '2019-06-01'
将不起作用,因为字符串无法转换为数字。因此a - b
,这不是比较它们的正确方法。要比较字符串,请使用a.localeCompare(b)
.
推荐阅读
- c# - 无法使用 MQServer 环境变量访问 MQ Manager
- python - 如何在python中使用排序函数对列表进行排序,时间复杂度较低?
- php - 2002:从 PHP My SQL 插入数据时连接超时
- precision - 物体检测中的mAP是什么?
- javascript - JavaScript Proxy Setter 不进行第二次代理调用
- arrays - 来自 MultiArray 的 Laravel 嵌套数组
- python - 如何在数据框中使用按元素分组的索引?
- scala - 如何使用 Spark 和 Scala/PySpark 从 Amazon QLDB 读取数据?
- reactjs - 在一个类组件中使用 React Context API 的多个上下文
- c - 将 funopen 重定向到标准输入/标准输出的便携式方法