lodash 两个对象数组的差异

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"}

我感谢所有提供帮助的努力


万千封印
浏览 215回答 2
2回答

素胚勾勒不出你

您可以使用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>

汪汪一只猫

这是因为即使它们的内容相同,对象也不相等,因为它们在内存中的地址不同。你可以尝试这样的事情:const&nbsp;results&nbsp;=&nbsp;_.xor(A1.map(object=>&nbsp;JSON.stringify(object)),&nbsp;A2.map(object=>&nbsp;JSON.stringify(object))).map(item&nbsp;=>&nbsp;JSON.parse(item));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript