42 递归函数

2020-06-08  本文已影响0人  CurryCoder

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

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

1.递归

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.资料下载

上一篇 下一篇

猜你喜欢

热点阅读