【发布时间】:2020-10-14 13:31:21
【问题描述】:
如何查找和删除两个不同数组中匹配的元素?
例如
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])
}
}
【问题讨论】:
-
到目前为止,您尝试了哪些方法来自行解决此问题?你对这种方法有什么问题?为什么您要求我们提供(基于意见的)“最佳方法”?
-
@Andreas 感谢您的评论。真的只需要一种方法而不是最好的方法。
标签: javascript arrays object filter