javascript自己实现多维数组遍历


<%@ page language= "java"  import= "java.util.*"  pageEncoding= "UTF-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ;
%>
 
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN" >
<html>
   <head>
     <base href= "<%=basePath%>" >
     
     <title>My JSP  'test3.jsp'  starting page</title>
     
     <meta http-equiv= "pragma"  content= "no-cache" >
     <meta http-equiv= "cache-control"  content= "no-cache" >
     <meta http-equiv= "expires"  content= "0" >    
     <meta http-equiv= "keywords"  content= "keyword1,keyword2,keyword3" >
     <meta http-equiv= "description"  content= "This is my page" >
     <!--
     <link rel= "stylesheet"  type= "text/css"  href= "styles.css" >
     -->
     <script src= "js/jquery-2.1.1.min.js" ></script>
     <script type= "application/javascript" >
         //遍历数组的每一项,只适合遍历一维数组
//      var array=[1,2,3,[4,[5]]];
//      array.forEach(function(item,index,array){
//          alert(item);
//      });
         //自己实现一个能遍历多维数组的Array each方法
         var  array2=[1,2,3,[4,[5,[6]]]];
         Array.prototype.each= function (fn){
             try {
                 //1.遍历数组的每一项
                 this .i || ( this .i=0);
                 //严谨的判断,什么时候进入条件
                 //当数组的长度大于0
                 if ( this .length>0 && fn.constructor==Function){
                     while ( this .i< this .length){       //循环遍历数组的每一项
                         //获取数组的每一项
                         var  e=  this [ this .i];
                         //如果胡取到当前元素并且当前元素是数组,递归
                         if (e && e.constructor==Array){
                             e.each(fn);
                         } else {          //获取到当前元素是单个元素 
                         //这的目的就是执行传递的函数并且把数组的当前元素传递给函数让函数执行
                             //fn.apply(e,[e]);
                             fn.call(e,e);                      
                         }
                         this .i++;
                     }
                     this .i= null ;              //使用完i回收垃圾
                 }
             } catch (ex){
                 alert( "出错" );
             }
             return  this ;
         }
         array2.each( function (item){
             alert(item);
         });
         
     </script>
     
   </head>
   
   <body>
     This is my JSP page. <br>
   </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值