【问题标题】:JavaScript - array, object - How can I streamline this codeJavaScript - 数组,对象 - 如何简化此代码
【发布时间】:2019-06-18 23:27:54
【问题描述】:

如何简化此代码? 我认为它可能有更好的重构方式。

const aa = ['red', 'yellow', 'blue']
const bb = { first: 0, second: 1, third: 2 }
const cc = { ...bb }

cc.first = aa[cc.first]
cc.second = aa[cc.second]
cc.third = aa[cc.third]

【问题讨论】:

  • 这真的是你想要的,还是只是一些人为的例子?你一般想达到什么目标?
  • 我投票结束这个问题,因为这个问题属于codereview.stackexchange.com

标签: javascript arrays ecmascript-6 javascript-objects


【解决方案1】:

此解决方案在从 aa 或 bb 添加或删除项目后仍然有效,无需更改代码。

const aa = ['red', 'yellow', 'blue']
const bb = { first: 0, second: 1, third: 2 }    
const cc = {};

for(var key in bb)
   cc[key] = aa[bb[key]];

【讨论】:

    【解决方案2】:

    您可以使用.reduce()Object.entries() 方法:

    const aa = ['red', 'yellow', 'blue']
    const bb = { first: 0, second: 1, third: 2 }
    
    const cc = Object.entries(bb)
                     .reduce((r, [k, i]) => (r[k] = aa[i], r), {});
    
    console.log(cc);

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 2019-08-20
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多