【发布时间】:2021-02-17 06:26:57
【问题描述】:
我有两个数组:
数组 1:
[
{old_clicks: 1, date: "2017-01-24" },
{ old_clicks: 4, date: "2017-01-22" },
{ old_clicks: 6, date: "2017-01-21" }
]
和数组 2:
[
{ total_clicks:120, date: "2017-01-21" },
{ total_clicks: 100, date: "2017-01-19" }
]
我需要基于date合并这两个数组并得到这个:
[
{ old_clicks: 1,date: "2017-01-24", total_clicks: 0 },
{ old_clicks: 4, date: "2017-01-22", total_clicks: 0 },
{ old_clicks: 6, date: "2017-01-21", total_clicks: 120 },
{ old_clicks: 0, date: "2017-01-19", total_clicks: 100 },
]
我已经尝试过了,但是由于它没有正确合并,所以它不起作用。
const arr1 = [
{ old_clicks: 1, date: "2017-01-24" },
{ old_clicks: 4, date: "2017-01-22" },
{ old_clicks: 6, date: "2017-01-21" }
];
const arr2 = [
{ total_clicks:120, date: "2017-01-21" },
{ total_clicks: 100, date: "2017-01-19" }
];
const mergeById = (a1, a2) => a1.map(itm => ({
...a2.find((item) => (item.date=== itm.date)),
...itm
}));
console.log(mergeById(arr1,arr2))
【问题讨论】:
-
@mplungjan 请查看两个数组,因为日期不在第一个数组上,但在第二个数组上。
-
@mplungjan 我在代码中进行了编辑以匹配 &item,谢谢指出
-
是的,打错字了,对不起
标签: javascript arrays javascript-objects