• 递归


    递归案例

      // 利用递归函数求 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));
     
     
  • 相关阅读:
    macOS 上配置 Lua
    Oracle.ManagedDataAccess.dll
    offer
    Costura.Fody
    日志系统
    实战框架ABP
    什么是算法?
    HTTP状态码->HTTP Status Code
    How to untar a TAR file using Apache Commons
    python实践3:cursor() — 数据库连接操作
  • 原文地址:https://www.cnblogs.com/ericblog1992/p/13068809.html
Copyright © 2020-2023  润新知