簡體   English   中英

將數組映射到對象,使用數組值作為鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM