用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));