递归

递归函数:函数内部自己调用自己,这个函数就是递归函数
1 function fn() {
2     console.log('我要打印6句话');
3     if(num == 6) {
4       return; // 递归里面必须加退出条件
5     }
6     num++;
7     fn();
8 }
9 fn();
 
利用递归函数求1~n的阶乘1*2*3*4*n
1  // 利用递归函数求1~n的阶乘1*2*3*4*n
2   function fn(n) {
3     if(n == 1) {
4       return 1;
5     }
6     return n * fn(n-1);
7   }
8   console.log(fn(3));
 
斐波那契序列
1 // 利用递归函数求斐波那契(兔子序列)1、1、2、3、5、8、13、21...
2 // 用户输入一个数字n,就可以求出 这个数字对应的兔子序列值
3 // 我们只需要知道用户输入的n的前面两项(n-1 n-2)就可以计算出n 对应的序列值
4   function fb(n) {
5     if (n === 1 || n === 2) {
6       return 1;
7     }
8     return fb(n - 1) + fn(n - 2);
9   }
 
我们想要做输入id号,就可以返回的数据对象
 1 // 我们想要做输入id号,就可以返回的数据对象
 2   // 1. 利用forEach去遍历里面的每一个对象
 3   function getID(json, id) {
 4     var o = {};
 5     json.forEach(function(item){
 6       if(item.id === id) {
 7         o = item;
 8         return item;
 9       } else if (item.goods && item.goods.length > 0) {
10         o = getID(item.goods, id);
11       }
12     })
13     return o;
14   }
15   console.log(getID(data, 1));
16   console.log(getID(data, 11));
17   console.log(getID(data, 111));

 
原文地址:https://www.cnblogs.com/guwufeiyang/p/13184870.html