我们可以使用JavaScript的Array.prototype.reduce()方法来合并两个数组并根据时间戳合并它们的属性。假设我们有两个数组array1和array2,每个数组都有一个名为timestamp的属性。我们可以按照如下方式将它们合并:
const array1 = [
{ name: 'John', age: 30, timestamp: 1609459200 },
{ name: 'Jane', age: 25, timestamp: 1609545600 },
{ name: 'Bob', age: 40, timestamp: 1609632000 },
];
const array2 = [
{ height: 180, weight: 75, timestamp: 1609459200 },
{ height: 165, weight: 55, timestamp: 1609545600 },
{ height: 190, weight: 80, timestamp: 1609632000 },
];
// 按照时间戳合并两个数组
const mergedArray = array1.reduce((merged, item) => {
// 在array2中查找具有相同时间戳的元素
const match = array2.find((elem) => elem.timestamp === item.timestamp);
// 如果找到了,则将两个对象合并成一个
if (match) {
merged.push({ ...item, ...match });
} else {
// 否则只向新数组中添加array1的元素
merged.push(item);
}
return merged;
}, []);
console.log(mergedArray);
输出的结果将是一个合并了两个数组并带有合并属性的新数组:
[
{ name: 'John', age: 30, height: 180, weight: 75, timestamp: 1609459200 },
{ name: 'Jane', age: 25, height: 165, weight: 55, timestamp: 1609545600 },
{ name: 'Bob', age: 40, height: 190, weight: 80, timestamp: 1609632000 },
]
下一篇:按时间戳合并行并解决冲突