我有一个叫做data的对象,它具有诸如“name”、“date”等属性。
const data = {
"name":{
"columnName":"name",
"columnType":"name of employee",
"values":[
"sam", "son"
],
"range":{
"min":0,
"max":0
}
},
"date":{
"columnName":"date",
"columnType":"date input",
"categoricalValues":[
],
"range":{
"min":0,
"max":0
}
},
"fare":{
"columnName":"fare",
"columnType":"fare indication",
"values":[
"false",
"true"
],
"range":{
"min":0,
"max":0
}
},
"id":{
"columnName":"id",
"columnType":"id employee",
"values":[
],
"range":{
"min":0,
"max":0
}
}
}
另一个对象categoricalColumns拥有一些属性,其中包含一个数组,在该数组中指定了前一个对象的所有属性名称。
const categoricalColumns =
{
"Charges" : ["name" , "fare"],
"Location" : ["date", "address" ]
}
如果对象data的属性,比如说"name"和"flare"存在于categoricalColumns的"charges"中,我需要将分类列对象重新构造成以下格式
{
"title" : "Charges",
"children" : [
{
"name":{
"columnName":"name",
"columnType":"name of employee",
"values":[
"sam", "son"
],
"range":{
"min":0,
"max":0
}
}
},
{
"fare":{
"columnName":"fare",
"columnType":"fare indication",
"values":[
"false",
"true"
],
"range":{
"min":0,
"max":0
}
}
}
]
}
预期结果:
const result = [
{
"title" : "Charges",
"children" : [
{
"name":{
"columnName":"name",
"columnType":"name of employee",
"values":[
"sam", "son"
],
"range":{
"min":0,
"max":0
}
}
},
{
"fare":{
"columnName":"fare",
"columnType":"fare indication",
"values":[
"false",
"true"
],
"range":{
"min":0,
"max":0
}
}
}
]
},
{
"title" : "Location",
"children" : [
{
"date":{
"columnName":"date",
"columnType":"date input",
"categoricalValues":[
],
"range":{
"min":0,
"max":0
}
}
}
]
},
{
title : "Others",
"children" : [
{
"id":{
"columnName":"id",
"columnType":"id employee",
"values":[
],
"range":{
"min":0,
"max":0
}
}
}
]
}
]
如果 data 的某个属性与任何一个categoricalColumns不匹配,则该属性必须属于"其他"属性的子级。