【发布时间】:2022-01-11 21:56:54
【问题描述】:
我正在尝试在 ReactJs 中生成一个菜单和一个子菜单。数据来自外部 api,格式为 JSON。
这是 JSON 数据:
[
{
"content": "A",
"Subtypes": [
{
"content": "1"
},
{
"content": "2"
},
{
"content": "3"
}
]
},
{
"content": "B",
"Subtypes": [
{
"content": "10"
},
{
"content": "20"
},
{
"content": "30"
},
{
"content": "40"
}
]
},
{
"content": "C",
"Subtypes": [
{
"content": "X"
},
{
"content": "Y"
},
{
"content": "Z"
}
]
}
]
我想从上面的 JSON 数据生成两个数组,类似于下面的:
Array1 = ["A","B","C"]
Array2 = {
A: ["1", "2", "3"],
B: ["10", "20", "30", "40"],
C: ["X", "Y", "Z"]
};
我怎样才能做到这一点?谢谢。
【问题讨论】:
-
你所说的
Array2不是一个数组,它是一个对象。你有什么尝试吗?如果您没有具体说明您尝试了什么,我们只能为您完成工作,而不是给您上一课。使用json.map(o => o.content)可以轻松实现Array1。请参阅stackoverflow.com/help/how-to-ask 使用我上面建议的知识来创建您想要的对象。您可能想使用Array#reduce而不是映射 -
你是对的,Array2 是一个对象。我尝试过使用 reduce 函数,但在创建第二个对象时似乎没有实现。
-
那你为什么不发布你到目前为止所尝试的?这是提出好问题的基本原则之一,如上面的链接中所述。然后我们可以告诉你你的问题是什么,而不是像现有的答案那样仅仅为你写一个解决方案,它们并不能帮助你理解你做错了什么。
标签: reactjs json multidimensional-array