我正在寻找一个简单的解决方案来比较两个不同对象数组中的“id”值和“type”,如下所示:
var arr_a = [
{ id: 1, name: "thumbler", type: "add" },
{ id: 2, name: "spoon", type: "add" },
{ id: 3, name: "plate", type: "add" },
];
var arr_b = [
{ id: 1, name: "thumbler", type: "remove" },
{ id: 2, name: "spoon", type: "add" },
{ id: 3, name: "plate", type: "add" },
{ id: 4, name: "fork", type: "add" },
];
我想要这样的结果
var arr_c = [
{ id: 1, name: "thumbler", type: "remove" },
{ id: 4, name: "fork", type: "add" },
];
我尝试使用filter和some(from here),但不起作用:
var arr_c = arr_b.filter(
(x) =>
arr_a.filter((y) => y.id === x.id && y.action_type === x.action_type)
.length > 0
);
有什么建议吗?
1条答案
按热度按时间mspsb9vt1#
您可以使用数组的
every
和some
方法来实现您的结果。请参见下面的片段。完整工作代码:-