javascript - 求助一个递归问题

查看:92
本文介绍了javascript - 求助一个递归问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码代码如下,我需要将data里面的数据递归一遍然后保留层级关系放到newTempData里面,现在不知道如何在每次递归时给newTempData加层级,也就是children

var data = [
    {
        name: "11111",
        children: [
            {
                name: "22222"
            },
            {
                name: "22222"
            },
            {
                name: "22222",
                children: [
                    {
                        name: "33333"
                    }
                ]
            }
        ]
    },
    {
        name: "1111",
        children: [
            {
                name: "22222",
                defaultUrl: "www.baidu.com",
                text: "text"
            }
        ]
    }
];


var newTempData = [];
function filterData(arr){
    for(var i = 0, len = arr.length; i < len; i++){
        //  如果有children属性,则对children元素进行递归
        if(arr[i].children){
            filterData(arr[i].children);
        }

        newTempData.push(arr[i]);
    }
}

filterData(data);

解决方案

应该没错吧?

function filterData(arr){
    var result = [];

    for(var i = 0, len = arr.length; i < len; i++){
        var  obj = {
            "defaultUrl": arr[i].defaultUrl,
            'name': arr[i].name
        }
        //  如果有children属性,则对children元素进行递归
        if(arr[i].children){
            obj.children = filterData(arr[i].children);
        }

        result.push(obj)
    }

    return result;
}

这篇关于javascript - 求助一个递归问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆