【发布时间】:2021-08-12 21:19:16
【问题描述】:
如何在 Javascript、React 中使用 Object.keys 返回对象?我想将我的状态设置为这样的:
dataset = [
{id:1,text_1:root,father:null,color:"#FF5722"},
{id:2,text_1:child1,father:1,color:"#FFC107"},
{id:3,text_1:child2,father:1,color:"#FFC107"},
{id:4,text_1:child3,father:1,color:"#FFC107"},
{id:5,text_1:child11,father:2,color:"#8BC34A"},
{id:6,text_1:child12,father:2,color:"#8BC34A"},
{id:7,text_1:child13,father:2,color:"#8BC34A"}
]
来自这个对象:
{
"root":{
"child1":{
"child11":[
"data"
],
"child12":[
"data",
"data",
"data"
],
"child13":[
"data"
],
"child14":[
"data",
]
},
"child2":{
"child21":[
"data"
],
"child22":[
"data",
"data",
"data"
],
"child23":[
"data"
],
"child24":[
"data"
]
},
"child3":{
"child31":[
"data"
],
"child32":[
"data"
],
"child33":[
"data"
],
"child34":[
"data",
]
},
"child4":{
"child41":[
"data"
],
"child42":[
"data",
"data",
"data"
],
"child43":[
"data"
],
},
},
"root1":{
...
}
}
我试过了:
setTree([
{
id: 1,
text_1: props.pickedRoot,
father: null,
color: "#FF5722",
},
Object.keys(res.data.treeData[0][props.pickedRoot]).map(
(item, i) => ({
id: i + 2,
text_1: item,
father: 1,
color: "#FFC107",
})
),
]);
除了 Object.keys 返回一个数组之外,它几乎可以工作,因此它给了我一个对象和一个对象数组。也许问题是我单独设置了我的根对象,但我真的不知道如何只用一个 map() 函数来设置它。
我的解决方案得到的结果:
0: {id: 1, text_1: "root", father: null, color: "#FF5722"}
1: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
我希望我能清楚地解释我的问题。
【问题讨论】:
标签: javascript arrays reactjs object tree