递归函数:函数内部自己调用自己,这个函数就是递归函数
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));