У меня есть объект data , который имеет такие свойства, как "имя", "дата" и т. Д.
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
}
}
}
Другой объект categoryoricalColumns , который имеет некоторые свойства, которые содержатмассив, в котором указаны все имена свойств предыдущего объекта
const categoricalColumns =
{
"Charges" : ["name" , "fare"],
"Location" : ["date", "address" ]
}
Если свойства объекта data , скажем, "name" и "flare" присутствуют внутри categoryoricalColumns"сборы", мне нужно реструктурировать объект категориального столбца в этом формате
{
"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 не соответствует ни одному из категорических столбцов , оно должно быть в дочерних элементах свойства "Другие".