![](/img/trans.png)
[英]Using .map() to iterate over an array of Object values and reassign to new keys
[英]Map an array to an object, using array values as keys
我有
const menu = ['home', 'news', 'about'];
我想把它映射到这个:
let menuExt =
{
home: Common.locs['home'],
news: Common.locs['news'],
about: Common.locs['about']
};
我该怎么做? 我试过
let menuExt = menu.map(item => {
return {
item: Common.locs[item]
}
});
但是我得到了一个带有“item”作为属性的数组,但是我想要一个带有属性 home、news、about 的对象(还有更多,但我在这里缩短了它)
menu.map(item => {menuExt[item]=Common.locs[item]});
我是这样管理的,但我不知道是否有更清洁、更快的解决方案:
let menuExt = {}
menu.forEach((item) => {
menuExt[item] = Common.locs[item]
});
惯用的方法是使用Array.reduce
,因为您正在获取一组对象并返回一个对象。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
const menu = ['home', 'news', 'about'];
const menuExt = menu.reduce((acc, key) => {
acc[key] = Common.locs[key];
return acc;
}, {});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.