js计算之递归

Posted ypm_wbg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js计算之递归相关的知识,希望对你有一定的参考价值。

看以下js代码:

var w = [{
        label: ‘你好‘,
        node: [
            {
                label: ‘你好啊‘,
                node: [{
                    label: "还好",
                    node: []
                }, {
                    label: ‘你好吧‘,
                    node: []
                },{
                    label: "还好",
                    node: []
                }, {
                    label: ‘你好吧‘,
                    node: [
                        {
                            label: "还好",
                            node: []
                        }, {
                            label: ‘你好吧‘,
                            node: []
                        }
                    ]
                }]
            }
        ]
    },
        {
            label: ‘我来了‘,
            node: []
        }
    ]

  怎么找出上面所有的label值,上面就是一个树型结构;

用递归遍历里面的所有对象如下:

    var b = [];
    function digui(c) {
        for (var i = 0; i < c.length; i++) {
            if (c[i].node.length === 0) {
                b.push(c[i].label)
            } else {
                b.push(c[i].label)
                digui(c[i].node)
            }
        }
    }
    digui(w)
    console.log(b);

以上是关于js计算之递归的主要内容,如果未能解决你的问题,请参考以下文章

Java基础入门五)之方法以及递归算法

48个值得掌握的JavaScript代码片段(上)

Node.js之删除文件夹(含递归删除)

JS中的高级函数之递归

JavaScript - 代码片段,Snippets,Gist

算法之递归