gpt4 book ai didi

javascript - 使用 lodash 比较两个对象数组并返回一个具有共同值的数组

转载 作者:行者123 更新时间:2023-12-03 00:28:26 28 4
gpt4 key购买 nike

我必须有一个对象数组,可以说看起来像这样:

var result1 = [
{id:1, name:'Sandra', type:'user', username:'sandra'},
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
{id:4, name:'Bobby', type:'user', username:'be_bob'}
];

var result2 = [
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
];

如何使用 loadash 获取两个数组中都存在的对象?如果我们有 N 个对象数组并且我们想要比较它们并获取数组中的共同值怎么办?

最佳答案

您可以简单地使用 filter 来完成此操作和 some

var result1 = [
{id:1, name:'Sandra', type:'user', username:'sandra'},
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
{id:4, name:'Bobby', type:'user', username:'be_bob'}
];

var result2 = [
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
{id:15, name:'Pe', type:'usefghjr', username:'pete'},
];

let op = result2.filter(e => result1.some(el => el.id === e.id))

console.log(op);

如果我有更多数组怎么办

var result1 = [
{id:1, name:'Sandra', type:'user', username:'sandra'},
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
{id:4, name:'Bobby', type:'user', username:'be_bob'}
];

var result2 = [
{id:2, name:'John', type:'admin', username:'johnny2'},
{id:3, name:'Peter', type:'user', username:'pete'},
{id:15, name:'Pe', type:'usefghjr', username:'pete'},
];

var result3 = [{id:3, name:'Peter', type:'user', username:'pete'}];

let array = [result1,result2,result3]

let op = result2.filter(ele => array.every(el => el.some(val => val.id === ele.id)))

console.log(op);

关于javascript - 使用 lodash 比较两个对象数组并返回一个具有共同值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53978763/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com