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个回答

test
2024-07-05
你可以用 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);
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容