JavaScript各种遍历方式详解,有你不知道的黑科技

  

为了方便例子讲解,现有数组和json对象如下

  
 <代码> var demoArr=[Javascript,“杯”,“CSS3”,“呼噜声”,“jQuery”,“角”);
  var demoObj={
  aaa: Javascript,
  bbb:“杯”,
  ccc:“CSS3”,
  ddd:“呼噜声”,
  eee:“jQuery”,
  fff:“角”
  }; 
  


可以直接看示例,用得太多了,很简单

  
 <代码>(函数(){
  (var=0, len=demoArr.length;i<兰;我+ +){
  如果(我==2){//返回;//函数执行被终止//中断;//循环被终止
  继续;//循环被跳过
  };
  控制台。日志(“demo1Arr[' +我+ ']:' + demo1Arr[我]);
  }
  })(); 
  

关于为循环,有一下几点需要注意

  

的循环中的我在循环结束之后任然存在与作用域中,为了避免影响作用域中的其他变量,使用函数自执行的方式将其隔离起来()();
避免使用的(var=0;i   

 <代码> var=0, len=demo1Arr.length;
  (;i<兰;我+ +){}; 
  

跳出循环的方式有如下几种
返回函数执行被终止
打破循环被终止
继续循环被跳过
示例:

  
 <代码> & lt; !DOCTYPE html>
  & lt; html lang=癳n”比;
  & lt; head>
  & lt;元charset=皍tf - 8”比;
  & lt; title>遍历详解:有;/title>
  & lt;脚本src=" http://libs.baidu.com/jquery/1.8.3/jquery.min.js "祝辞& lt;/script>
  & lt;/head>
  & lt; body>
  
  & lt;/body>
  & lt; script>
  var demo1Arr=[Javascript,“杯”,“CSS3”,“呼噜声”,“jQuery”、“角”);
  (函数(){
  (var=0, len=demo1Arr.length;i<兰;我+ +){
  如果(我==2){//返回;//函数执行被终止//中断;//循环被终止
  继续;//循环被跳过
  };
  控制台。日志(“demo1Arr[' +我+ ']:' + demo1Arr[我]);
  }//欢迎加入全栈开发交流圈一起学习交流:1007317281
  })();
  & lt;/script>
  & lt;/html>  
  在

(var项arr | obj){}可以用于遍历数组和对象

  

遍历数组时,项表示索引值,由表示当前索引值对应的元素arr[项目]
遍历对象时,项表示关键值,由表示键值对应的价值值obj[项目]

  
 <代码>(函数(){
  我在demoArr (var) {
  如果(我==2){
  返回;//函数执行被终止//中断;//循环被终止//继续;//循环被跳过
  };
  控制台。日志(“demoArr[' +我+ ']:' + demoArr[我]);
  }//欢迎加入全栈开发交流圈一起学习交流:1007317281
  console.log (“- - - - - - - - - - - - -”);
  })(); 
  在

关于,有以下几点需要注意:
在为循环与在循环中,我值都会在循环结束之后保留下来。因此使用函数自执行的方式避免。
使用,休息,继续跳出循环都与对循环一致,不过关于返回需要注意,在函数体中,返回表示函数执行终止,就算是循环外面的代码,也不再继续往下执行。而打破仅仅只是终止循环,后面的代码会继续执行。

  
 <代码>函数res () {
  var demoArr=[Javascript,“杯”,“CSS3”,“呼噜声”,“jQuery”、“角”);
  
  (var项demoArr) {
  如果(项目==2){
  返回;
  };
  控制台。日志(项目,demoArr[项目]);
  }
  控制台。日志(“desc”、“函数res”);//不会执行
  } 
  

forEach
demoArr.forEach(函数(arg) {})

  

参数参数表示数组每一项的元素,实例如下

  
 <代码> demoArr.forEach(函数(e) {
  如果(e==CSS3) {
  返回;//循环被跳过//中断;//报错//继续;//报的错
  };
  console.log (e);
  }) 
  

具体有一下需要注意的地方

  

forEach无法遍历对象
forEach无法在IE中使用,firefox和chrome实现了该方法
forEach无法使用,继续跳出循环,使用返回时,效果和在对循环中使用继续一致
/而
函数具体的实现方式如下,不过有一点值得注意的是,当使用继续时,如果你将我+ +放在了后面,那么我+ +的值将一直不会改变,最后陷入死循环。因此使用做/在一定要小心谨慎一点。

  

不建议使用/而的方式来遍历数组

  
 <代码>//直接使用
  (函数(){
  var=0,
  len=demoArr.length;
  虽然(我& lt;len) {
  如果(我==2){//返回;//函数执行被终止//中断;//循环被终止//继续;//循环将被跳过,因为后边的代码无法执行,我的值没有改变,因此循环会一直卡在这里,慎用! !
  };
  控制台。日志(“demoArr[' +我+ ']:' + demoArr[我]);
  我+ +;
  }
  console.log (' - - - - - - - - - - - - - - - - - - - - - - - -”);
  })();//,
  (函数(){
  var=0,
  len=demo3Arr.length;
  {做
  如果(我==2){
  打破;//循环被终止
  };//欢迎加入全栈开发交流圈一起学习交流:1007317281
  控制台。日志(“demo2Arr[' +我+ ']:' + demo3Arr[我]);
  我+ +;
  },(i

JavaScript各种遍历方式详解,有你不知道的黑科技