树结构的数据扁平化

javascript 复制代码
function flattenTree(data) {
    data = JSON.parse(JSON.stringify(data));
    var res = [];
    while(data.length) {
        var node = data.shift();
        if (node.children && node.children.length) {
            data = data.concat(node.children);
        }
        delete node.children;
        res.push(node);
    }
    return res;
}

我们用一个数据来测试:

javascript 复制代码
var tree = [{
    id: 1,
    name: '1',
    children: [{
        id: 2,
        name: '2',
        children: [{
            id: 3,
            name: '3',
            children: [{
                id: 4,
                name: '4'
            }]
        }, {
            id: 6,
            name: '6'
        }]
    }]
}, {
    id: 5,
    name: '5'
}]

使用:

javascript 复制代码
console.log(flattenTree(tree));

打印结果:

相关推荐
派小心.5 小时前
DAU和MAU怎么计算?先确定活跃事件、用户键和统计窗口
大数据·服务器·前端·人工智能·数据分析
代码猎人5 小时前
前端怎么配合后端完成bug修复
前端
叫我铁汁儿吧5 小时前
JS作用域
前端·面试
定栓6 小时前
Webpack迁到Vite第七节(四):全家桶移除 — 保留项、脚本与数据收尾
前端·webpack·node.js
代码猎人6 小时前
前端怎么保障项目稳定上线与运行
前端
数据掘金6 小时前
小程序埋点方案的埋点文档怎么自动生成?
前端
deli0076 小时前
cron 表达式为什么总跑错?10 个场景实测,下次执行时间一眼看懂
前端
代码猎人6 小时前
前端怎么优化页面性能
前端
代码猎人6 小时前
前端怎么配合后端完成数据对接
前端
lexiangqicheng6 小时前
Docker的沙箱机制是怎样的?
前端·javascript