我现在正在研究一些东西,但无法弄清楚。我有一个看起来像这样的数据库表(带有虚拟数据):
基于key和value我要生成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"
}
]
}]
函数式编程
慕森卡
相关分类