JavaScript递归小demo

248 阅读1分钟

递归这个词解释起来比较抽象,自己多敲几遍就能明白了,总之一句话,函数内调用函数本身

直接上代码:

这个小案例是打印多维数组,想到打印多维数组,可能会有初学者想到for循环,确实,打印二维数组可以使用for循环,那如果是250维数组呢,可想而知,工作量和代码量都异常的高,凡人也写不出来250层for循环

这时候就需要用到函数了,封装一个函数,只要传入一个数组,就可以依次打印出数组里的每一个值,但是需要做一个判断,我们想要的是依次打印出每一个值,数组中有数组,这时候我们就要判断这个值是不是数组,如果是数组,那么就执行我们封装的函数才,把这个数组传入进去

<script>
        let arr = [1, 2, 3, [4, 5, 6, [7, 8, 9], 10], 11]
        // 封装一个打印数组中值的函数
        function numLog(arr) {
            for (let i = 0; i < arr.length; i++) {
                // 判断是不是数组
                if (Array.isArray(arr[i])) {
                   // 是数组就执行封装的函数,将数组传入
                    numLog(arr[i])
                } else {
                    // 不是数组打印出来
                    console.log(arr[i]);
                }
            }
        }
        numLog(arr)
    </script>

image.png