当前位置: 首页 > Web前端 > HTML

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

时间:2023-04-02 21:21:32 HTML

为了方便举例,现有的数组和json对象如下vardemoArr=['Javascript','Gulp','CSS3','Grunt','jQuery','angular'];vardemoObj={aaa:'Javascript',bbb:'Gulp',ccc:'CSS3',ddd:'Grunt',eee:'jQuery',fff:'angular'};for可以直接看例子,用的太多了,很简单(function(){for(vari=0,len=demoArr.length;i遍历详解:对于body>forinfor(variteminarr|obj){}是遍历数组和对象遍历数组时,item代表索引值,arr代表对应的元素当前索引值arr[item]遍历对象时,item表表示键值,arr表示键值对应的值obj[item](function(){for(variindemoArr){if(i==2){return;//函数执行终止//break;//循环终止//继续;//循环被跳过};console.log('demoArr['+i+']:'+demoArr[i]);}//欢迎加入全-stack开发交流圈一起学习交流:1007317281console.log('------------');})();关于forin,有以下几点需要注意:在for循环和forin循环中,循环结束后i的值会被保留,所以要用函数自执行的方式来避免。使用return、break、continue跳出循环与for循环一致,但需要注意return。在函数体中,return表示函数执行终止,即使循环外的代码也不会继续执行。而break只是终止循环,后面的代码会继续执行。函数res(){vardemoArr=['Javascript','Gulp','CSS3','Grunt','jQuery','angular'];for(demoArr中的varitem){if(item==2){返回;};console.log(item,demoArr[item]);}console.log('desc','functionres');//不会执行}forEachdemoArr.forEach(function(arg){})参数arg表示数组中每一项的元素,示例如下demoArr.forEach(function(e){if(e=='CSS3'){return;//循环被跳过//break;//报错//continue;//报错};console.log(e);})有几点要注意:forEach不能遍历objectsforEach在IE中不能使用,firefox和chrome已经实现了这个方法forEach不能使用break,continue跳出循环,使用return时,效果与for循环中使用continue一致。do/while函数的具体实现如下,但是值得注意的是,在使用continue的时候,如果把i++放在后面,i++的值永远不会改变,最后陷入死循环。因此,在使用do/while时必须小心。不推荐使用do/while遍历数组//直接使用while(function(){vari=0,len=demoArr.length;while(i