如何使用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。嵌套循环提示您可以先尝试。