![](/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.