第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將帶有級別信息的平面數(shù)組重新排列成帶有子節(jié)點的 n 叉樹

將帶有級別信息的平面數(shù)組重新排列成帶有子節(jié)點的 n 叉樹

青春有我 2022-12-18 16:33:48
給定一個級別格式的數(shù)組,它們的直接子級存儲在一個連續(xù)的數(shù)組中,返回一個 n 叉樹給定輸入格式:[{'name':'a', 'level': -1},    {'name':'b', 'level': 0},        {'name':'c', 'level': 1},            {'name':'d', 'level': 2},    {'name':'e', 'level': 0},        {'name':'f', 'level': 1},    {'name':'g', 'level': 0}];預期輸出應采用以下格式:[ {  name:"a",  level:-1,  children: [    {      name:"b",      level:0,      children: [         {           name:"c",           level:1,           children: [              {                  name:"d",                  level:2,                  children: [ ]              }            ]         }       ]    }  ], }, {   name:"e",   level:1,   children: [        {          name:"f",          level:2,          children: [ ]        }   ] }, {   name:"g",   level:2,   children: [ ] }]我嘗試實現(xiàn)的遞歸解決方案失敗了以上代碼返回function treeTraversal(arr, index) {  if (arr === null || arr.length === 0 || index === arr.length) {    return;  }  let result = [];  let children = [];  if (arr[index - 1].level + 1 === arr[index].level) {    children.push(arr[index]);    console.log(children);    treeTraversal(arr, index + 1);  }  arr[index - 1].children = children;  result.push(arr[index - 1]);  return result;}const arr = [{    'name': 'a',    'level': -1  },  {    'name': 'b',    'level': 0  },  {    'name': 'c',    'level': 1  },  {    'name': 'd',    'level': 2  },  {    'name': 'e',    'level': 0  },  {    'name': 'f',    'level': 1  },  {    'name': 'g',    'level': 0  }];console.log(treeTraversal(arr, 1));意想不到的結(jié)果。請讓我知道上面的代碼有什么問題
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

您可以為級別獲取一個輔助數(shù)組,并將對象分配給該級別的最新數(shù)組加一。


var data = [{ name: 'a', level: -1 }, { name: 'b', level: 0 }, { name: 'c', level: 1 }, { name: 'd', level: 2 }, { name: 'e', level: 0 }, { name: 'f', level: 1 }, { name: 'g', level: 0 }],

    tree = [],

    levels = [tree];


data.forEach(o => levels[o.level + 1].push({ ...o, children: levels[o.level + 2] = [] }));


console.log(tree);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對 回復 2022-12-18
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號