【问题标题】:Javascript/Node - Destructuring array like oject [closed]Javascript / Node - 像对象一样解构数组[关闭]
【发布时间】:2021-08-23 13:19:49
【问题描述】:

这似乎是重复的问题,但我找不到解决它的理想方法。 (我在谷歌上搜索了“转换对象数组”之类的关键字...... 是的!我是笨蛋……)

我现在的数据是这样的。

[ { name: 'apple', value: 'red' },
  { name: 'banana', value: 'yellow' },
  { name: 'ocean', value: 'blue'}
]

而且,我想把它改成这样的对象。

[ { 'apple' : 'red' }, { 'banana' : 'yellow' }, { 'ocean' : 'blue' } ]

提前致谢!

【问题讨论】:

  • 你需要使用Object.valuesObject.fromEntries
  • 使用Array.prototype.map:data.map(el => ({[el.name]: el.value}))

标签: javascript node.js ecma


【解决方案1】:

你可以使用Array.prototype.map:

data.map(el => ({[el.name]: el.value}))

例子:

console.log([
  { name: 'apple', value: 'red' },
  { name: 'banana', value: 'yellow' },
  { name: 'ocean', value: 'blue'}
].map(el => ({[el.name]: el.value})));

【讨论】:

    【解决方案2】:

    使用Array.prototype.reduce:

    const result = data.reduce(
      (acc, el) => {
        acc[el.name] = el.value;
        return acc;
      },
      {}));
    

    用法

    const data = [
      { name: 'apple', value: 'red' },
      { name: 'banana', value: 'yellow' },
      { name: 'ocean', value: 'blue'}
    ];
    
    const result = data.reduce(
      (acc, el) => {
        acc[el.name] = el.value;
        return acc;
      },
      {}));
    
    console.log(result);
    

    输出:

    Object { apple: "red", banana: "yellow", ocean: "blue" }

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 2019-05-13
      • 2012-07-25
      • 2017-12-05
      • 2013-09-20
      • 2017-06-11
      • 1970-01-01
      • 2023-02-20
      • 2022-06-15
      相关资源
      最近更新 更多