1、for(){}
var arr = [1,2,3,4,5];
for(let i=0; i<arr.length; i++){
//...
}
缺点:代码不过简洁
2、forEach()
var arr = [1,2,3,4,5];
arr.forEach(function(value,index){
//...
});
缺点:无法中断停止整个循环
3、for...in
var arr = [1,2,3,4,5];
for(let i in arr){
//...
}
注:for...in循环更常用于【对象】的循环,如果用于【数组】的循环,每次循环中得到的i是【字符串类型】,而不是预料中的数字类型,要想对它进行运算,那得先要进行类型转换。
4、for...of
var arr = [1,2,3,4,5];
for(let value of arr){
console.log(value); // 1 2 3 4 5
}
注:① 写法比for循环简洁;② 可以用break来终止整个循环,或者continue来跳出循环,继续后面的循环;③ 结合keys()获取到循环的索引,并且是数字类型,而不是字符串类型。
* 循环可终止
var arr = [1,2,3,4,5];
for(let value of arr){
if(value == 3){
break;
}
console.log(value);
}
//打印结果:1 2
* 跳过当前循环
var arr = [1,2,3,4,5];
for(let value of arr){
if(value == 3){
continue;
}
console.log(value);
}
//打印结果:1 2 4 5
* 得到数字类型的索引
var arr = [1,2,3,4,5];
for(let index of arr.keys()){
console.log(index);
}
//打印结果:0 1 2 3 4