javascript - 来自具有数组值的对象的对象数组
问题描述
我有下面的数组:
[{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"}]
解决方案
这可以使用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);
推荐阅读
- javascript - 我们可以添加多个 console.log 以在浏览器控制台内的一行中获取多个日志的输出吗?
- c++ - std::bind 如何按值获取可变参数,即使是通用引用?
- circleci - CircleCi 如何获取合并分支的名称?
- python - 如何根据数据框中的不同行值将标签分配给新列?
- regex - 正则表达式匹配特殊字符
- firebase - 如何添加 Flutter Firebase VIdeo Upload Progrese Indecator | 上传进度指示器 |
- python - 循环遍历目录中的多个文件并保存到不同工作表中的单个 excel 文件中
- r - R twitterwidget 包 - 更新闪亮输入时未清除推文
- microsoft-graph-api - Microsoft Graph 待办事项 API 返回状态代码 500
- reactjs - 如何检查访问令牌是否在反应中过期