【问题标题】:Using reduce on an object with an array在带有数组的对象上使用 reduce
【发布时间】:2021-03-13 14:24:05
【问题描述】:

我有这个 JavaScript 对象

{ 
names: [ "youtube","twitch"],
autoEnable: true
}

我想将此对象转换为数组中每个名称的对象数组。 autoEnable 和 isEnabled 对应

[{
  name: youtube,
  isEnabled: true
},
{
  name: twitch,
  isEnabled: true
}]

【问题讨论】:

  • 是什么阻止你这样做?

标签: javascript lodash underscore.js reduce


【解决方案1】:

这不是 reduce 的用例(除了使用预构建的、可重用的 reducer 进行函数式编程之外,几乎没有,尽管它经常被使用);这是map的案例:

const obj = { 
    names: [ "youtube","twitch"],
    autoEnable: true
};
const array = obj.names.map(name => ({name, views: 46, isEnabled: obj.autoEnable}));

现场示例:

const obj = { 
    names: [ "youtube","twitch"],
    autoEnable: true
};
const array = obj.names.map(name => ({name, views: 46, isEnabled: obj.autoEnable}));
console.log(array);

【讨论】:

    【解决方案2】:

    const data = { 
    names: [ "youtube","twitch"],
    autoEnable: true
    }
    
    const a = data.names.map((name) => {
      return {
        name,
        isEnabled: true, // you could run a function here to get this value
        views: 46 // you could run a function here to get this value
      }
    });
    
    console.log(a);

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 1970-01-01
      • 2017-07-11
      • 2022-11-09
      • 2020-01-07
      • 2018-12-26
      • 1970-01-01
      • 2019-10-28
      • 2021-12-27
      相关资源
      最近更新 更多