如何使用Javascript(JS)比较两个单独数组中的两个对象值?

如何使用Javascript(JS)比较两个单独数组中的两个对象值?,javascript,jquery,underscore.js,lodash,Javascript,Jquery,Underscore.js,Lodash,假设我有两个数组,其中填充了具有多个属性的对象,其中一些键是相同的 var array1 = [ {name: "Jim", city: 'Toronto', id:'1281732'}, {name: "Alex", city: 'New York', id:'32423'}, {name: "Simon", city: 'San Francisco', id:'234234'}, {name: "

假设我有两个数组,其中填充了具有多个属性的对象,其中一些键是相同的

        var array1 = [
          {name: "Jim", city: 'Toronto', id:'1281732'},
          {name: "Alex", city: 'New York', id:'32423'},
          {name: "Simon", city: 'San Francisco', id:'234234'},
          {name: "Jake", city: 'Milwaukee', id:'1282342341732'}
        ]

        var array2 = [
          {name: "Joey", city: 'Raleigh'},
          {name: "Alex", city: 'New York'},
          {name: "Lee", city: 'San Diego'},
          {name: "Jake", city: 'Milwaukee'}
        ]
通过比较名称和城市,我如何发现array1中的第2个和第4个对象也在array2中找到。这意味着两个对象键必须匹配,然后从阵列1中获取复制的对象并推入新阵列


使用lodash或下划线之类的东西是可以接受的。

与所有编程任务一样,您所做的是仔细思考问题,并提出有意义的解决方案。在这种情况下,可以通过迭代第一个数组来搜索第二个数组中的每个项,并且在每次迭代中,迭代第二个数组直到找到匹配项

var数组1=[
{姓名:“吉姆”,城市:“多伦多”,id:'1281732'},
{姓名:“亚历克斯”,城市:“纽约”,id:'32423'},
{姓名:“西蒙”,城市:“旧金山”,id:'234234'},
{姓名:“杰克”,城市:“密尔沃基”,id:'1282341732'}
]
变量array2=[
{名字:“乔伊”,城市:'罗利'},
{姓名:“亚历克斯”,城市:'纽约'},
{名字:“李”,城市:'圣地亚哥'},
{名字:“杰克”,城市:'密尔沃基'}
]
var结果=[];
对于(变量i=0;i控制台日志(结果)为了获得两个数组中的结果,您也可以简单地使用
filter()
函数

var数组1=[
{姓名:“吉姆”,城市:“多伦多”,id:'1281732'},
{姓名:“亚历克斯”,城市:“纽约”,id:'32423'},
{姓名:“西蒙”,城市:“旧金山”,id:'234234'},
{姓名:“杰克”,城市:“密尔沃基”,id:'1282341732'}
]
变量array2=[
{名字:“乔伊”,城市:'罗利'},
{姓名:“亚历克斯”,城市:'纽约'},
{名字:“李”,城市:'圣地亚哥'},
{名字:“杰克”,城市:'密尔沃基'}
]
var array3=array1.filter(row1=>array2.filter(row2=>row1.name==row2.name&&row1.city==row2.city)。长度>0);

控制台日志(array3)在询问如何执行之前,请尝试一种解决方案。这不是一个编码服务平台。是的,我同意@WilomGfx。嵌套循环提示您可以先尝试。