为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2023-08-18 17:13:41
我有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... 属性的对象(还有更多,但我在这里缩短了)
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

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



查看完整回答
反对 回复 2023-08-18
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

惯用的方法是使用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;

}, {});


查看完整回答
反对 回复 2023-08-18
?
噜噜哒

TA贡献1784条经验 获得超7个赞

我以这种方式管理,但我不知道是否有更干净、更快的解决方案:


    let menuExt = {}

    menu.forEach((item) => {

      menuExt[item] = Common.locs[item]

    });


查看完整回答
反对 回复 2023-08-18
  • 3 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信