用JavaScript实现几个简单编程题,下面的都是使用递归函数实现的。
1、用递归函数求阶乘。
阶乘:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。
即:n!=1×2×3×...×n
function fn(n){
if(n==1){
return 1;
}
return n*fn(n-1);
}
console.log(fn(3))
2、用递归函数求斐波拉契数列。
斐波拉契数列:指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
这个数列从第3项开始,每一项都等于前两项之和。
function fn(n){ //求第n项对应的序列值
if(n===1 || n===2){
return 1;
}
return fn(n-1)+fn(n-2);
}
console.log(fn(5))
3、用递归函数遍历数据。
var data=[{
id:1,
name:'化妆品',
goods:[{
id:11,
gname:'口红'
},{
id:12,
gname:'腮红'
}]
},{
id:2,
name:'服饰'
}];
function getID(json,id){
var o={};
json.forEach(function(item){
if(item.id==id){
o=item;
}else if(item.goods && item.goods.length>0){
o=getID(item.goods,id);
}
});
return o;
}
console.log(getID(data,11));