算法-实现each遍历多维数组(javascript)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法-实现each遍历多维数组(javascript)相关的知识,希望对你有一定的参考价值。

# 实现each遍历多维数组
  <script type="text/javascript">
   
//   var arr=[1,2,3,4,[1,2,3,4]]
//   arr.forEach(function(item,index,array)){}
   var arr=[12,3,2,3,4,[3,2,4,1],[3,3,1,32,12,4,4,52]]
   
   Array.prototype.each=function(fn){
    try{
//     1、使用this.i,记录当前遍历元素的位置,单独的作用域
     this.i || (this.i=0)
//     2、严谨判断什么时候使用each():
//     当数组长度大于0,且传递的参数必须为函数     
     if(this.length>0 && fn.constructor==Function){
//      遍历数组,底层使用while,for,少用for in      
      
      while(this.i<this.length){
       var e=this[this.i]
//       判断元素是否为数组
       if(e && e.constructor==Array){
//        如果元素为数组,则执行递归操作
        e.each(fn)
       }else{
//        如果元素为非数组,则把元素传递给fn函数,
//        传递参数(当前元素)给fn,并执行函数fn
        fn.call(null,e)
       }
       this.i++
      }
//      函数执行完成后,释放内存,回收变量
      this.i=null
     }
    }catch(ex){
     //TODO handle the exception
    }
    
    return this
   }
   

   console.log(arr.each())
   
  </script>

以上是关于算法-实现each遍历多维数组(javascript)的主要内容,如果未能解决你的问题,请参考以下文章

求教一个JQ 遍历 生成多维数组的问题

jquery里遍历普通数组和多维数组的方法及实例

cocos JS cc.each循环遍历对象

急! jquery $.each 嵌套循环遍历

jquery的each()详细介绍

jquery的each()详细介绍