42 递归函数

技术交流QQ群:1027579432,欢迎你的加入!

欢迎关注我的微信公众号:CurryCoder的程序人生

1.递归

  • 如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己,这个函数就是递归函数。
  • 递归函数的作用和循环效果一样,由于递归很容易发生栈溢出错误,所以必须要加退出条件return

2.利用递归求某个数的阶乘

```javascript
<script>
    var str = prompt('请输入一个整数: ');
    var num = parseInt(str);
    function fn(n){
        if(n == 1) return 1;  // 递归终止条件
        return n * fn(n - 1);
    }
    alert(fn(num));
</script>
```

3.利用递归求斐波那契数列

```javascript
<script>
    var s = prompt('请输入一个整数: ');
    var num = parseInt(s);
    function fb(n){
        if(n == 1 || n == 2){
            return 1;
        }
        return fb(n-1) + fb(n-2);
    }
    alert(fb(num));
</script>
```

4.利用递归遍历数据

```javascript
 <script>
    var data = [{
        id: 1,
        name: '家电',
        goods: [{
            id: 11,
            gname: '冰箱',
            goods: [{
                id: 111,
                gname: '海尔'
            }, {
                id: 112,
                gname: '美的'
            }]
        }, {
            id: 12,
            gname: '洗衣机'
        }]
    }, {
        id: 2,
        name: '服饰'
    }];
    // 输入id号,就可以返回数据对象
    // 利用forEach遍历数组中的每一个对象
    function getID(json, id) {
        var res = {};
        json.forEach(function (item) {
            // console.log(item); // 2个数组元素
            if (item.id == id) {
                // console.log(item);
                res = item;
                return item;
                // 想要得到里面的数据11和12,可以利用递归函数
            } else if (item.goods && item.goods.length > 0) {
                res = getID(item.goods, id);
            }
        })
        return res;
    }
    console.log(getID(data, 1));
    console.log(getID(data, 12));
    console.log(getID(data, 111));
</script>
```

5.资料下载

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务