使用数组值作为键将数组映射到对象

我有


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... 属性的对象(还有更多,但我在这里缩短了)


摇曳的蔷薇
浏览 119回答 3
3回答

Helenr

menu.map(item => {menuExt[item]=Common.locs[item]});

一只斗牛犬

惯用的方法是使用Array.reduce,因为您正在获取对象数组并返回单个对象。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceconst menu = ['home', 'news', 'about'];const menuExt = menu.reduce((acc, key) => {     acc[key] = Common.locs[key];     return acc;}, {});

噜噜哒

我以这种方式管理,但我不知道是否有更干净、更快的解决方案:    let menuExt = {}    menu.forEach((item) => {      menuExt[item] = Common.locs[item]    });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript