将
let list1 = [{name:"张三",time:"20220101"},{name:"李四",time:"20220102"},{name:"王五",time:"20220103"}]
let list2 = [{name:"翰林",time:"20220103"},{name:"拔客",time:"20220105"},{name:"水煮",time:"20220106"}]
let list3 = [{name:"清蒸",time:"20220101"},{name:"赵六",time:"20220102"},{name:"清白",time:"20220103"},{name:"小白",time:"20220104"}]
let list4 = [{name:"养鱼",time:"20220101"},{name:"随便",time:"20220105"}]
按照时间属性,合并成这样
let list = [{list1_name:"张三",list3_name:"清蒸",list4_name:"养鱼",time:"20220101"},
{list1_name:"李四",list3_name:"赵六",time:"20220102"},
{list1_name:"王五",list2_name:"翰林",list3_name:"清白",time:"20220103"}
,{list3_name:"小白",time:"20220104"},{list2_name:"拔客",list4_name:"随便",time:"20220105"},
{list2_name:"水煮",time:"20220106"}]
如何操作
<script>
function listName(name, arr) {
arr.forEach((item) => {
item[item.name + item.time] = name;
});
return arr;
}
let list1 = [
{ name: "张三", time: "20220101" },
{ name: "李四", time: "20220102" },
{ name: "王五", time: "20220103" },
];
let list2 = [
{ name: "翰林", time: "20220103" },
{ name: "拔客", time: "20220105" },
{ name: "水煮", time: "20220106" },
];
let list3 = [
{ name: "清蒸", time: "20220101" },
{ name: "赵六", time: "20220102" },
{ name: "清白", time: "20220103" },
{ name: "小白", time: "20220104" },
];
let list4 = [
{ name: "养鱼", time: "20220101" },
{ name: "随便", time: "20220105" },
];
list1 = listName("list1_name", list1);
list2 = listName("list2_name", list2);
list3 = listName("list3_name", list3);
list4 = listName("list4_name", list4);
const list = [...list1, ...list2, ...list3, ...list4];
const newList = [];
let map = new Map();
for (let item of list) {
if (!map.has(item["time"])) {
map.set(item["time"], item);
}
}
const newKey = [...map.keys()];
newKey.forEach((item) => {
const itemArr = {};
list.forEach((e) => {
item == e.time ? (itemArr[e[e.name + e.time]] = e.name) : "";
});
itemArr.time = item;
newList.push(itemArr);
});
console.log(newList);
</script>