JavaScript recursion and related cases

JavaScript recursion and related cases

  1. What is recursion?
    Recursion: A function can call itself internally
var num = 1;

function fn() {
      console.log('我爱写代码');
      if (num == 6) {
            return;
      } else {
            num++;
      }
      fn();
}
fn();  //'我爱写代码'*6

Since recursion is prone to stack overflow errors, it is necessary to add an exit condition return

  1. Case: Use recursion to traverse data
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) {
                o = item;
                if (item.id == id) {
                    //2.得到里层里id对应的数据(递归)
                } else if (item.goods && item.goods.length > 0) {
                    getId(item.goods, id);
                }

            });
            return o;
}
console.log(getId(data, 12));
  1. Case: Using recursion to solve math problems
//1.求阶乘
        function fn(n) {
            if (n == 1) {
                return 1;
            } else {
                return n * fn(n - 1);
            }
        }
        var num1 = fn(4);
        console.log(num1);
        //2.求斐波那契数列
        function fn1(n) {
            if (n == 1 || n == 2) {
                return 1;
            }
            return fn1(n - 1) + fn1(n - 2);
        }
        var money1 = fn1(5);
        console.log(money1);

Guess you like

Origin blog.csdn.net/Angela_Connie/article/details/110352813
Recommended