怎么遍历这样树形结构的数组

像这样树形结构的数组,我想给所有的name 换成title,怎么遍历呢。数组的层次不定,可能有的里面没children。

const treeData = [{
    title: '0-0',
    key: '0-0',
    children: [{
      title: '0-0-0',
      key: '0-0-0',
      children: [
        { title: '0-0-0-0', key: '0-0-0-0' },
        { title: '0-0-0-1', key: '0-0-0-1' },
        { title: '0-0-0-2', key: '0-0-0-2' },
      ],
    }, {
      title: '0-0-1',
      key: '0-0-1',
      children: [
        { title: '0-0-1-0', key: '0-0-1-0' },
        { title: '0-0-1-1', key: '0-0-1-1' },
        { title: '0-0-1-2', key: '0-0-1-2' },
      ],
    }, {
      title: '0-0-2',
      key: '0-0-2',
    }],
  }, {
    title: '0-1',
    key: '0-1',
    children: [
      { title: '0-1-0-0', key: '0-1-0-0' },
      { title: '0-1-0-1', key: '0-1-0-1' },
      { title: '0-1-0-2', key: '0-1-0-2' },
    ],
  }, {
    title: '0-2',
    key: '0-2',
    children: []

  }];
阅读 14.6k
4 个回答

递归遍历

function setName(obj){
       for(var i in obj){
           obj[i].name = obj[i].title;
           if(obj[i].chilren){
               setName(obj[i].children)
           }
       }
       console.log(obj);
  }
  setName(treeData)
function treedata(a){
            let d=a.map(r=>{
            if(r.children){
                 return {'name':r.title,'key':r.key,'children':treedata(r.children)}
            }else{
                return {'name':r.title,'key':r.key}
            }
          })
          return d
        }
        console.log(treedata(treeData))
JSON.parse(JSON.stringify(treeData).replace(/"title"/g,'"name"'))

如果只是题目中这种简单的结构的话,一个偷懒的方法

哪里有 name?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题