Я работаю над чем-то уже несколько дней, но не могу понять. У меня есть таблица БД (с фиктивными данными), которая выглядит следующим образом:
На основе key
и value
I хочу сгенерировать json. field_id
является родителем в структуре json. Но как я могу создать эту структуру в javascript?
Я уже пробовал это:
let fields = [
{ id: 1, field_id: null, key: 'key1', value: 'value1'},
{ id: 2, field_id: 1, key: 'key2', value: 'value2'},
{ id: 3, field_id: 2, key: 'key3', value: 'value3'},
{ id: 4, field_id: 1, key: 'key4', value: 'value4'}
];
let result = [];
fields.map(({key, value, id}) => {
let obj = {}; obj[key] = value
fields.forEach((f) => {
if(f.field_id == id) {
let obj2 = {}; obj2[f.key] = f.value
obj = {...obj, ...obj2}
}
});
result.push(obj);
});
console.log(result);
Но это, очевидно, не работает. Я думаю, мне нужна какая-то рекурсивная функция?
Ожидаемый результат:
[{
"key1": [{
"key2": [{
"key3": "value3"
}]
},
{
"key4": "value4"
}
]
}]