JavaScript之递归

}

num++;

fn();

}

fn();

打印结果为:

在这里插入图片描述

知道了递归是什么,那我们再来看看如何利用递归解决问题吧!

[](()二、利用递归求数学题

=========================================================================

[](()1、求1 * 2 * 3 * 4 …*n的阶乘。


代码如下:

function fn(n){

if(n == 1){

return 1;

}

return n*fn(n-1);

}

console.log(‘1-20的阶乘为:’+fn(20));

console.log(‘1-10的阶乘为:’+fn(10));

console.log(‘1-5的阶乘为:’+fn(5));

打印结果为:

在这里插入图片描述

[](()2、 求斐波那契数列 。


斐波那契数列,又称为“兔子数列”,指的是这样一个数列:、1、1、2、3、5、8、13、21、34、……,即第三项的值为前两项的加和。用户输入一个n,就可以得到该位置的数。

代码如下:

function fb(n){

if(n === 1 || n === 2){

return 1;

}

return fb(n-1) + fb(n-2);

}

console.log(‘第3项斐波那契数列值为:’+fb(3));

console.log(‘第10项斐波那契数列值为:’+fb(10));

打印结果为:

在这里插入图片描述

[](()三、利用递归求:根据id返回对应的数据对象

====================================================================================

有如下所示的对象:

var date = [{

id:1,

name:‘电器’,

goods:[{

id: 11,

gname:‘手机’

},{

id: 12,

gname: ‘电脑’

}]

},{

id:2,

name:‘服饰’,

goods:[{

id : 21,

gname:‘裤子’

},{

id : 22,

gname : ‘外套’

}]

},{

id : 3,

name: ‘食品’

}];

现在要通过输入id返回对应的数据对象。

首先我们可以通过for...Each()来遍历数组,得到每一项值,如下所示:

function getId(array,id){

array.forEach(function(value){

console.log(value);

})

}

getId(date,1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值