javascript - 组 Json 数组 javascript
问题描述
这是一个很简单的问题,我得到了一个这样的 Json:
const test = [
{
label: "Group 1",
options: [
{ label: "option 1", value: "value_1" },
{ label: "option 2", value: "value_2" }
]
},
{
label: "Group 1",
opions: [
{ label: "option 3", value: "value_3" },
{ label: "option 4", value: "value_4" }
]
},
{
label: "Group 2",
options: [
{ label: "option 5", value: "value_5" },
{ label: "option 6", value: "value_6" }
]
},
{
label: "Group 3",
options: [
{ label: "option 7", value: "value_7" },
{ label: "option 8", value: "value_8" }
]
},
{
label: "Group 3",
options: [
{ label: "option 9", value: "value_9" },
{ label: "option 10", value: "value_10" }
]
},
];
我想像这样对它们进行分组(通过 Group 标签 - 格式完全如下所述,我不能添加任何其他值,因为我将在 react-select 组件中使用它作为选项)
const test = [
{
label: "Group 1",
options: [
{ label: "option 1", value: "value_1" },
{ label: "option 2", value: "value_2" },
{ label: "option 3", value: "value_3" },
{ label: "option 4", value: "value_4" }
]
},
{
label: "Group 2",
options: [
{ label: "option 5", value: "value_5" },
{ label: "option 6", value: "value_6" }
]
},
{
label: "Group 3",
options: [
{ label: "option 7", value: "value_7" },
{ label: "option 8", value: "value_8" },
{ label: "option 9", value: "value_9" },
{ label: "option 10", value: "value_10" }
]
},
];
我怎样才能做到这一点?
提前致谢
解决方案
请在下面为您的问题陈述找到解决方案。
const test = [{
label: "Group 1",
options: [{
label: "option 1",
value: "value_1"
},
{
label: "option 2",
value: "value_2"
}
]
},
{
label: "Group 1",
opions: [{
label: "option 3",
value: "value_3"
},
{
label: "option 4",
value: "value_4"
}
]
},
{
label: "Group 2",
options: [{
label: "option 5",
value: "value_5"
},
{
label: "option 6",
value: "value_6"
}
]
},
{
label: "Group 3",
options: [{
label: "option 7",
value: "value_7"
},
{
label: "option 8",
value: "value_8"
}
]
},
{
label: "Group 3",
options: [{
label: "option 9",
value: "value_9"
},
{
label: "option 10",
value: "value_10"
}
]
},
];
let temp = {};
test.forEach(t => {
const key = t.label;
if (temp[key]) {
const tempArray = temp[key].options.concat(t.options);
temp[key].options = tempArray;
} else {
temp[key] = {
label: key,
options: t.options
}
}
});
console.log(Object.values(temp));
推荐阅读
- android - 我们可以将一个 ViewPager 适配器用于多个活动吗?
- git - 如何在 GitHub 上找到 imageURL?
- conv-neural-network - 使用 Python 进行数据增强
- cloud - 可能有多个网关以及如何仅在 JHipster 中使用前端创建网关?
- c# - 在磁盘上找到 Blazor Webassembly 下载的 .dll 文件?
- javascript - 在Javascript中使用异步的for循环
- python - 如何随机化文本文件中的所有行,而不必将它们保存到变量中?
- reactjs - 尝试在 React 前端渲染 MongoDB 条目 10 秒后超时
- python - 如何在 Python 中使用 Regex 从文件中抓取有效的电子邮件?
- php - 重定向回以前的 url 或授权保护的 url