递归

 

 

递归案例

  // 利用递归函数求 1-n 的阶乘 1 * 2 * 3 * 4 *5 ...n
        function fn(n) {
            if (n == 1) {
                return 1;
            }
            return n * fn(n - 1);
        }

        console.log(fn(4));
 
// 利用递归函数求 斐波那契数列值
        function fb(n) {
            if (n == 1 || n == 2) {
                return 1;
            }
            return fb(n - 1) + fb(n - 2);
        }

        console.log(fb(4));
 
     // 输入 id 返回对应的数据对象
 var data = [{
            id: 1,
            name: '家电',
            goods: [{
                id: 11,
                gname: '冰箱'
            }, {
                id: 12,
                gname: '洗衣机'
            }]
        }, {
            id: 2,
            name: '服饰'
        }]

        // 输入 id 返回对应的数据对象
        // 1 利用foreach 遍历对象
        function getID(json, id) {
            var o = {};
            json.forEach(function(item) {
                // console.log(item); // 2 个数据元素
                if (item.id == id) {
                    // console.log(item);
                    o = item;
                    return item;
                    // 得到里层的数据   可以利用递归函数来做 
                    // 里面数据 应该有goods 数据 并且长度不能为0 
                } else if (item.goods && item.goods.length > 0) {
                    o = getID(item.goods, id);
                }
            });
            return o;
        }
        console.log(getID(data, 1));
        console.log(getID(data, 2));
        console.log(getID(data, 11));
        console.log(getID(data, 12));
 
 

 

posted @ 2020-06-08 21:52  EricBlog  阅读(110)  评论(0编辑  收藏  举报