我知道这个需要使用递归函数。 需要帮助来转换这个对象
{ '1': {},
'2': {
'3': {},
'4': { '6': {}, '7': {} },
'5': { '8': {}, '9': {} }
}
}
到这个对象数组
[
{ key: 1 },
{
key: 2,
children: [
{key: 3},
{
key: 4,
children: [{key: 6}, {key: 7}],
},
{
key: 5,
children: [{key: 8}, {key: 9}],
}
}
答案 0 :(得分:1)
您可以使用reduce()
方法创建递归函数。
var obj = {"1":{},"2":{"3":{},"4":{"6":{},"7":{}},"5":{"8":{},"9":{}}}}
function f(data) {
return Object.keys(data).reduce((r, k) => {
let o = {key: k}
if (Object.keys(data[k]).length) o.children = f(data[k]);
r.push(o)
return r;
}, [])
}
let result = f(obj)
console.log(result)