如何查找和删除在两个不同数组中匹配的元素?
例如
let arr = [
{ startTimestamp: 1602675569525, name: "Pip" },
{ startTimestamp: 1602664708822, name: "Jimmy" },
{ startTimestamp: 1234, name: "Hero" }
];
let arr2 = [
{ startTimestamp: 1602675569525, name: "Pip" },
{ startTimestamp: 1602664708822, name: "Jimmy" },
{ startTimestamp: 505050, name: "Kit" }
];
如果startTimestamp
匹配,那么我想删除那些元素。输出应该是
[
{ startTimestamp: 1234, name: "Hero" },
{ startTimestamp: 505050, name: "Kit" }
]
我在下面尝试过这个,但它只会给我,[{startTimestamp: 1234, name: "Hero"}]
因为我只是在推动 arr[i] 但我也需要{ startTimestamp: 505050, name: "Kit" }
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if(arr[i].startTimestamp !== arr2[i].startTimestamp) {
newArr.push(arr[i])
}
}
合并两个数组并通过删除重复的startTimestamp
对象来过滤项目会很好。
let arr = [
{ startTimestamp: 1602675569525, name: "Pip" },
{ startTimestamp: 1602664708822, name: "Jimmy" },
{ startTimestamp: 1234, name: "Hero" }
];
let arr2 = [
{ startTimestamp: 1602675569525, name: "Pip" },
{ startTimestamp: 1602664708822, name: "Jimmy" },
{ startTimestamp: 505050, name: "Kit" }
];
const result = [ ...arr, ...arr2 ].filter((item, index, origin) => origin.filter((subItem) => subItem.startTimestamp === item.startTimestamp).length === 1);
console.log(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句