使用js转换数组,需不需要用到递归?如果用该怎么做

现在有一个数组是这样
[{
"id":1,
"text":"选项2",
"parentid":0
},{
"id":2,
"text":"选项3",
"parentid":0
},{
"id":3,
"text":"选项4",
"parentid":1
},{
"id":4,
"text":"选项5",
"parentid":1
},{
"id":5,
"text":"选项6",
"parentid":2
},{
"id":6,
"text":"选项7",
"parentid":5
},{
"id":7,
"text":"选项8",
"parentid":6
}]

我想转成这种形式:
[{
"id":1,
"text":"选项2",
"parentid":0,
"children":[{
"id":3,
"text":"选项4",
"parentid":1
},{
"id":4,
"text":"选项5",
"parentid":1
}]
},{
"id":2,
"text":"选项3",
"parentid":0,
"children":[{
"id":5,
"text":"选项6",
"parentid":2
},{
"id":6,
"text":"选项7",
"parentid":5,
"children":[{
"id":7,
"text":"选项8",
"parentid":6
}]
}]
}]
在js中该怎么做....?
望大神求解...

javascript树数据源嵌套结构和扁平结构互转

把你想要加进去的数据,拼进这个json不就好了吗