这是一道遇到过两次的前端笔试题,第一次是在哪里记不清了,第二次是在今天上午多益网络的笔试中,两次试题的具体内容稍微有差别,因为时间和IDE 的原因都没能解出正确答案。事后又花点时间捣鼓一下,整理出两种解法,记录在这里。
1. 问题的输入与输出
首先来看一下这个问题的输入和输出:
// 输入
var nodes = [
{id: 10, title: 'dw10', parentId: 4},
{id: 2, title: 'dw2', parentId: 0},
{id: 4, title: 'dw4', parentId: 2},
{id: 12, title: 'dw12', parentId: 2},
{id: 8, title: 'dw8', parentId: 4}
];
// 输出
{
"id": 2,
"title": "dw2",
"parentId": 0,
"children": [
{
"id": 12,
"title": "dw12",
"parentId": 2
},
{
"id": 4,
"title": "dw4",
"parentId": 2,
"children": [
{
"id": 8,
"title": "dw