js N多层(不定)嵌套循环变更json中key值方法输出完整的新的list对象

数据children不定,js单独函数处理数据,如同将 name变更为tile,value变更为key,
如果children数组为空,则输出isLeaf:true,否则,继续循环变更子项
求解...
数据结构如下

list = [
    {
        name: '0',
        value: '0',
        children: [
            name: '0-1',
            value: '0-1',
            children: [
                name: '0-2',
                value: '0-2',
                children: [
                    // ...
                ],
                // ...
            ]
        ]
    },
];
阅读 3k
1 个回答

暂且理解为你说的输出isLeaf: true 是给children为空的数据加上这个属性吧, 代码如下


function transform(list) {
    if (Array.isArray(list) && list.length !== 0) {
        list = list.map(v => {
            v.title = v.name
            v.key = v.value
            delete v.name
            delete v.value
            if (!transform(v.children)) {
                v.isLeaf = true
            }
            return v
        })
        return list
    } else {
        return false
    }
}

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