首页 > 解决方案 > 来自具有数组值的对象的对象数组

问题描述

我有下面的数组:

[{title: [1, 2], subcategory: "x", category: "y"},
{title: [3, 4], subcategory: "x", category: "y"}]

如何将其转换为下面的数组?:

[{title: 1, subcategory: "x", category: "y"},
{title: 2, subcategory: "x", category: "y"},
{title: 3, subcategory: "x", category: "y"},
{title: 4, subcategory: "x", category: "y"}]

标签: javascript

解决方案


这可以使用Array.prototype.flatMap.

const input = [{
    title: [1, 2],
    subcategory: "x",
    category: "y"
  },
  {
    title: [3, 4],
    subcategory: "x",
    category: "y"
  }
];

const output = input.flatMap((item) => item.title.map((title) => ({
  title,
  subcategory: item.subcategory,
  category: item.category
})));
console.log(output);


推荐阅读