Javascript JS如何获取2个数组对象之间的匹配id

Javascript JS如何获取2个数组对象之间的匹配id,javascript,arrays,object,Javascript,Arrays,Object,如何使用javascript在2个数组对象之间获得2个匹配id // Array 1 const array1 = [ {id: 1, name: 'milla'}, {id: 2, name: 'alice'} ] // Array 2 const array2 = [ {id: 3, name: 'bobba', height: '170cm', age: 22}, {id: 2, name: 'alice', height: '169cm', age: 21}, {i

如何使用javascript在2个数组对象之间获得2个匹配id

// Array 1
const array1 = [
  {id: 1, name: 'milla'},
  {id: 2, name: 'alice'}
]

// Array 2
const array2 = [
  {id: 3, name: 'bobba', height: '170cm', age: 22},
  {id: 2, name: 'alice', height: '169cm', age: 21},
  {id: 1, name: 'milla', height: '171cm', age: 24},
  {id: 4, name: 'ricky', height: '168cm', age: 32},
]
预期的输出是返回Array2对象的数组,该数组在array1上使用id进行处理

// expected result
[
  {id: 2, name: 'alice', height: '169cm', age: 21},
  {id: 1, name: 'milla', height: '171cm', age: 24},
]

您可以筛选并查看是否存在相同的id

常数 array1=[{id:1,名称:'milla'},{id:2,名称:'alice'}], array2=[{id:3,姓名:'bobba',身高:'170cm',年龄:22},{id:2,姓名:'alice',身高:'169cm',年龄:21},{id:1,姓名:'milla',身高:'171cm',年龄:24},{id:4,姓名:'ricky',身高:'168cm',年龄:32}], hash=array1.reducer,{id}=>r[id]=true,r,{}, filtered=array2.filter{id}=>hash[id];
console.logfiltered 最有效的方法是生成array1中ID的映射,然后根据这些ID过滤array2,如下所示:

设array1=[{id:1,名称:'milla'},{id:2,名称:'alice'}]; 让数组2=[{id:3,名字:'bobba',身高:'170cm',年龄:22},{id:2,名字:'alice',身高:'169cm',年龄:21},{id:1,名字:'milla',身高:'171cm',年龄:24},{id:4,名字:'ricky',身高:'168cm',年龄:32}]; 设idMap=array1.reduceres,curr=>res[curr.id]=true,res,{}; 让filtered=array2.filteritem=>idMap[item.id];
老实说,这是基本的JS,但无论如何,这里有一个解决方案:

常数数组1=[ {id:1,名字:'milla'}, {id:2,名字:'alice'} ] //阵列2 常数数组2=[ {id:3,姓名:'bobba',身高:'170cm',年龄:22}, {id:2,姓名:'alice',身高:'169cm',年龄:21}, {id:1,姓名:'milla',身高:'171厘米',年龄:24}, {id:4,姓名:'ricky',身高:'168cm',年龄:32}, ] const map=array1.reducea,c=>{…a[c.id]:true},{}; 常量array3=array2.filteritem=>map[item.id];
控制台。日志阵列3;到目前为止,您尝试了什么?这是在*m上,如果您首先在地图中生成ID列表,则可以在上执行此操作。