为了方便例子讲解,现有数组和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项arr | obj){}可以用于遍历数组和对象 遍历数组时,项表示索引值,由表示当前索引值对应的元素arr[项目] 关于,有以下几点需要注意: forEach 参数参数表示数组每一项的元素,实例如下 具体有一下需要注意的地方 forEach无法遍历对象 不建议使用/而的方式来遍历数组
避免使用的(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> 代码>
在
遍历对象时,项表示关键值,由表示键值对应的价值值obj[项目] <代码>(函数(){
我在demoArr (var) {
如果(我==2){
返回;//函数执行被终止//中断;//循环被终止//继续;//循环被跳过
};
控制台。日志(“demoArr[' +我+ ']:' + demoArr[我]);
}//欢迎加入全栈开发交流圈一起学习交流:1007317281
console.log (“- - - - - - - - - - - - -”);
})();代码>
在
在为循环与在循环中,我值都会在循环结束之后保留下来。因此使用函数自执行的方式避免。
使用,休息,继续跳出循环都与对循环一致,不过关于返回需要注意,在函数体中,返回表示函数执行终止,就算是循环外面的代码,也不再继续往下执行。而打破仅仅只是终止循环,后面的代码会继续执行。 <代码>函数res () {
var demoArr=[Javascript,“杯”,“CSS3”,“呼噜声”,“jQuery”、“角”);
(var项demoArr) {
如果(项目==2){
返回;
};
控制台。日志(项目,demoArr[项目]);
}
控制台。日志(“desc”、“函数res”);//不会执行
}代码>
demoArr.forEach(函数(arg) {}) <代码> demoArr.forEach(函数(e) {
如果(e==CSS3) {
返回;//循环被跳过//中断;//报错//继续;//报的错
};
console.log (e);
})代码>
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各种遍历方式详解,有你不知道的黑科技