javascript - 如何将嵌套数组减少为单个对象数组

标签 javascript arrays object ecmascript-6

我正在尝试将嵌套数组减少为对象数组,因为我想将多级数组拆分为数组的单个对象

这是我想要减少的数组结构

var array1 = [
  {
    "course": "ABC"
    "skills":["skill1", "skill2"],
  },
  {
    "course": "DEF"
    "skills":["skill1"],
  },
  {
    "course": "GHI"
    "skills":["skill1", "skill2", "skill3"],
  }
]

我期望的结果

var array1 = [
  {
    "course": "ABC"
    "skill":"skill1",
  },
  {
    "course": "ABC"
    "skill":"skill2",
  },
  {
    "course": "DEF"
    "skill":"skill1",
  },
  {
    "course": "GHI"
    "skills":"skill1",
  },
  {
    "course": "GHI"
    "skills":"skill2",
  },
  {
    "course": "GHI"
    "skill": "skill3",
  }
]

最佳答案

var array1 = [
  {
    course: "ABC",
    skills:["skill1", "skill2"]
  },
  {
    course: "DEF",
    skills: ["skill1"]
  },
  {
    course: "GHI",
    skills: ["skill1", "skill2", "skill3"]
  }
];

const flatten = array =>
  array.reduce((results, item) => [...results, ...item.skills.map(skill => ({ course: item.course, skill: skill }))], []);


console.log(flatten(array1));

关于javascript - 如何将嵌套数组减少为单个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56783652/

相关文章:

javascript - 如何使用velocity js创建3D显示和隐藏动画

java - 将嵌套的 JSONObject 转换为 JSONArray,然后将其放入 java 中的 HashMap 中

iphone - 删除 NSMutablearray 中的最后一个对象

javascript - 打印对象不包含所有键

c# - 需要将通用方法移动到另一个类并从 C# 中的不同类调用它

javascript - 比较 3 个 javascript 变量的值

c# - 获取asp.net中pdf文档的当前页码

javascript - 如何获取对象的长度

java - 将 JPanel 添加到 JPanel 数组

javascript - ngResource + 401错误处理: Expected response either an array or an object