为了账号安全,请及时绑定邮箱和手机立即绑定

lodash 两个对象数组的差异

lodash 两个对象数组的差异

万千封印 2023-08-24 15:57:46
useEffect我的reactJS中有以下代码const A1 = [{id: 1, nome: "Ruan"}, {id: 2, nome: "Gleison"}]const A2 = [{id: 2, nome: "Gleison"}, {id: 3, nome: "Geraldo"}]const results = _.xor(A1, A2);console.log(results)lodashis的逻辑_.xor是返回两个数组之间的差异,但是,事实并非如此我得到的回报如下0: Object {id: 1, nome: "Ruan"}1: Object {id: 2, nome: "Gleison"}2: Object {id: 2, nome: "Gleison"}3: Object {id: 3, nome: "Geraldo"}我感谢所有提供帮助的努力
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以使用xorBy来指示用于比较的属性:


const A1 = [{id: 1, nome: "Ruan"}, {id: 2, nome: "Gleison"}]

const A2 = [{id: 2, nome: "Gleison"}, {id: 3, nome: "Geraldo"}]


const results = _.xorBy(A1, A2, 'id'); // or 'nome'


console.log(results)

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>


查看完整回答
反对 回复 2023-08-24
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

这是因为即使它们的内容相同,对象也不相等,因为它们在内存中的地址不同。

你可以尝试这样的事情:

const results = _.xor(A1.map(object=> JSON.stringify(object)), A2.map(object=> JSON.stringify(object))).map(item => JSON.parse(item));


查看完整回答
反对 回复 2023-08-24
  • 2 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信