【发布时间】:2017-08-30 00:23:00
【问题描述】:
假设您有两个包含对象的数组,Array 1 和 Array 2。我遇到的问题是找到两个数组之间的 exact 差异,其中可能包括看似相等的元素。在这个例子中,我注释了每个数组中的具体对象。
您可以将其视为有一个包含重复商品的购物车,但您只能兑换一件商品。所以//number 4 是重复项之一,但在Array 3
阵列 1
[
{ // number 1
item_id: 4,
total_price: 2.71
},
{ // number 2
item_id: 2,
total_price: 3.71
},
{ // number 3
item_id: 4,
total_price: 1.71
},
{ // number 4
item_id: 4,
total_price: 2.71
}
]
阵列 2
[
{ // number 1
item_id: 4,
total_price: 2.71
}
]
我如何找到这两个数组之间的区别,Array 3?最好在每个对象上都有一个唯一的键以便更容易比较?在 javascript/node 中执行此操作,主要使用 lodash。
阵列 3
[
{ // number 2
item_id: 2,
total_price: 3.71
},
{ // number 3
item_id: 4,
total_price: 1.71
},
{ // number 4
item_id: 4,
total_price: 2.71
}
]
【问题讨论】:
-
我不明白为什么“数字 4”在结果数组中?元素索引是否也算作差异?
-
@sboesch 我编辑了这个问题,但考虑到这一点,假设您有一个包含重复商品的购物车,但您只能兑换一件商品。所以
//number 4是重复项之一,但在 Array 3 中仍然需要它 -
对不起,但是什么?那么您实际上想要实现什么......如果两个数组中都存在相同的对象,请将其从结果数组中删除?
-
@KornholioBeavis 见上文 :)
标签: javascript arrays node.js lodash