js数组对象的循环处理返回数组集合?

let Arr1 = [
  "one",
  "two",
  "three"
]

let Arr2 = {
  one: [{name:"1"}],
  two: [{name:"2"}],
  three:[{name:"3"}],
  four:[{name:"4"}],
  five:[{name:"5"}]
}
Arr1数组的数据不固定,然后根据Arr1数组的数据去取Arr2里面的数据,
需要得到返回的数据格式如下:
let res = {
   one: [{name:"1"}],
   two: [{name:"2"}],
   three:[{name:"3"}]
}
res 对象的键值(key)需要对应Arr1 数组里面的 one two three

大佬们帮我看看
我自己写的这个有点问题:

let res= arr1.filter(k => {
  return Object.fromEntries({k: arr2[k]})
})
这个res的键值(key)写成K 了,没有拿到Arr1 里面的 one two three
阅读 1.8k
2 个回答

你可以用 Array.reduce() 方法来处理:

let Arr1 = [
  "one",
  "two",
  "three"
]

let Arr2 = {
  one: [{name:"1"}],
  two: [{name:"2"}],
  three:[{name:"3"}],
  four:[{name:"4"}],
  five:[{name:"5"}]
}

let res = Arr1.reduce((accumulator, key) => {
  if (Arr2.hasOwnProperty(key)) {
    accumulator[key] = Arr2[key];
  }
  return accumulator;
}, {});

console.log(res);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题