JavaScript編程題(四)——使用遞歸函數實現

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章