我是靠谱客的博主 文艺小甜瓜,最近开发中收集的这篇文章主要介绍javascript实现递归,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

javascript实现递归

一、递归

递归是一个函数实现自己调用自己的过程,在递归过程中需要存在函数的调用,以及实现条件终止。
下面几个例子.

<script>
let num = 1;
    function fn(){
      console.log("我要打印六句话");
      if(num == 6){
        return;
      }
      num++;
      fn();
    }
    fn();
</script>

使用递归打印出六句话

<script>
function fn(n) {
      if (n == 1) {
        return 1;
      }
      return n * fn(n - 1);
    }
    console.log(fn(4));
</script>

最终显示结果是24。

<script>
 function fb(n) {
      if (n === 1 || n === 2) {
        return 1;
      }
      return fb(n - 1) + fb(n - 2);
    }
    console.log(fb(5));
    console.log(fb(6));
</script>

最终结果是5,8

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        var data = [{
            id: 1,
            name: '家电',
            goods: [{
                id: 11,
                gname: '冰箱',
                goods: [{
                    id: 111,
                    gname: '海尔'
                }, {
                    id: 112,
                    gname: '美的'
                }, ]
            }, {
                id: 12,
                gname: '洗衣机'
            }]
        }, {
            id: 2,
            name: '服饰'
        }];
        // 我们想要做输入id号,就可以返回的数据对象
        // 1. 利用 forEach 去遍历里面的每一个对象
        function getID(json, id) {
            var o = {};
            json.forEach(function(item) {
                // console.log(item); // 2个数组元素
                if (item.id == id) {
                    // console.log(item);
                    o = item;
                    // 2. 我们想要得里层的数据 11 12 可以利用递归函数
                    // 里面应该有goods这个数组并且数组的长度不为 0 
                } else if (item.goods && item.goods.length > 0) {
                    o = getID(item.goods, id);
                }

            });
            return o;
        }
        console.log(getID(data, 1));
        console.log(getID(data, 2));
        console.log(getID(data, 11));
        console.log(getID(data, 12));
        console.log(getID(data, 111));
    </script>
</body>

</html>

最后一个demo是实现数据的查询效果。
2020年1月8日总结。

最后

以上就是文艺小甜瓜为你收集整理的javascript实现递归的全部内容,希望文章能够帮你解决javascript实现递归所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部