js用递归遍历多维数组_你了解JS的递归遍历吗?谈谈你的见解

本文探讨了JavaScript中递归遍历多维数组的用途和优点,包括如何替代for循环、实现多级遍历、异步结果的依次输出以及排序。通过实例展示了递归在处理数据结构和异步操作时的优势,同时也指出了递归可能的局限性,如内存消耗和数据格式要求。最后提供了在线体验地址和源码仓库链接,供读者进一步学习和实践。
摘要由CSDN通过智能技术生成

JavaScript的递归遍历会经常遇到,适当的运用递归遍历,可以提高代码性质量。

1.某些时候递归能替换for循环

我们先看一下下面2个例子。

var arrList = [1,2,3,5,100,500,10000,10000,1000,10000002] //for循环测试 function forTest(){     console.time("for循环")     for(let i in arrList){         console.log(((arrList[i] + arrList[i]) * 5 - arrList[i])/arrList[i])     }     console.timeEnd("for循环") } //递归遍历测试 function recursive() {     console.time("递归遍历")     const testFun = function (i) {         console.log(((arrList[i] + arrList[i]) * 5 - arrList[i])/arrList[i])         if(i == arrList.length - 1){             return         }         i++         testFun(i)     }     testFun(0)     console.timeEnd("递归遍历") } forTest() recursive()

运行结果:

9ef974eda0eb31eb1dded7a7501d02f7.png

运行结果

可以看到,for循环去遍历一个数组和用递归遍历去遍历同一个数组得到的结果一样,耗时也几乎相同。但是写法上有很大区别。

递归特点

每个递归都有一个结束递归的条件,上例中的:if(i == arrList.length - 1){ return }。每一个递归都会在函数内部把函数本身调用一次,但是函数在每次运行的时候,都会发生一些变化,用来触发递归的结束,上例中,testFun函数在内部调用了自己,并且每次调用i的值会+1,最终触发了结束条件,让递归结束。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值