javascript - 合并两个数组并按 dateTime 字段排序
问题描述
我有两个排序数组,并将它们组合成一个新的 listC。
listA = [
{id:"1234435", name:"apple", dateTime_ISO:"2019-01-15 17:27:30"},
{id:"1234435", name:"orange", dateTime_ISO:"2019-01-15 10:25:30"},
{id:"1234435", name:"banana", dateTime_ISO:"2019-01-15 10:25:02"},
{id:"1234435", name:"pear", dateTime_ISO:"2019-01-15 07:21:52"},
{id:"1234435", name:"lemon", dateTime_ISO:"2019-01-15 07:22:24"},
]
listB = [
{id:"1234435", name:"bread", dateTime:"2019-01-15 17:27:34"},
{id:"1234435", name:"rice", dateTime:"2019-01-15 09:25:30"},
{id:"1234435", name:"noodle", dateTime:"2019-01-15 07:25:02"},
{id:"1234435", name:"pie", dateTime:"2019-01-15 07:06:52"},
{id:"1234435", name:"cake", dateTime:"2019-01-15 06:22:24"},
]
listC = this.listA.concat(this.listB)
如何根据 dateTime 对 listC 进行排序?
所以我想得到一个新的 dateTimeList 只包含 dateTime,然后对这个列表进行排序,并以某种方式对 listC 进行排序
dateTimeList = this.listA
.map(x => x.dateTime_ISO)
.concat(this.listB.map(x => x.dateTime));
但是有什么可靠的方法可以对这个 dateTimeList 进行排序吗?
如果仅仅因为两个列表具有不同的字段名称(dateTime_ISO 和 dateTime)而无法完成,那么就假装它们是相同的。我可以将它们修改为在数据库中相同。
感谢任何帮助。
解决方案
您可以利用短路对组合列表进行排序,同时仍然具有不同的属性。例如:
let listA = [{id:"1234435", name:"apple", dateTime_ISO:"2019-01-15 17:27:30"},{id:"1234435", name:"orange", dateTime_ISO:"2019-01-15 10:25:30"},{id:"1234435", name:"banana", dateTime_ISO:"2019-01-15 10:25:02"},{id:"1234435", name:"pear", dateTime_ISO:"2019-01-15 07:21:52"},{id:"1234435", name:"lemon", dateTime_ISO:"2019-01-15 07:22:24"},]
let listB = [{id:"1234435", name:"bread", dateTime:"2019-01-15 17:27:34"},{id:"1234435", name:"rice", dateTime:"2019-01-15 09:25:30"},{id:"1234435", name:"noodle", dateTime:"2019-01-15 07:25:02"},{id:"1234435", name:"pie", dateTime:"2019-01-15 07:06:52"},{id:"1234435", name:"cake", dateTime:"2019-01-15 06:22:24"},]
let listC = listA.concat(listB)
listC.sort((a, b) => {
return (a.dateTime_ISO || a.dateTime).localeCompare((b.dateTime_ISO || b.dateTime))
})
console.log(listC)
推荐阅读
- docker - 无法使用 Docker(CentOS 7.8 主机)启动 systemd 容器。无法挂载 API 文件系统,冻结
- ansible - 如何在ansible playbook中检查状态码
- javascript - 如何在 React Native 中使用 Promise 和来自外部 API 的数据
- php - 结果放入数组
- javascript - SetContents SunEditor 不工作
- angular - 从服务器端(servlet)发送响应后如何在角度端获取属性
- python - 如何使用 dbscan 知道每个集群中的行数?
- angular - Angular页面被重定向到主页
- c# - 访问控制器或 Razor 组件外部的 appsettings.json 设置
- npm - 无法将包推送到 Github