对程序员来说大部分的快乐是从解决问题,特别是独立解决问题中获得,而不是从这个CASE有多大,奖金有多少中获得
在JavaScript中,循环的写法有很多种,有很多朋友不知道如何跳出循环.
今天这篇博客简单地写一下.
如有错误,欢迎各位指出.谢谢.
for
for 循环在目前的情况下一般用于较为复杂的语句或者初学者
for(let i=0;i<length;i++){
// continue;
continue;
// break
break;
}
each
each 主要用于遍历jquery的dom节点.
$('.defaultPropertySwitch').each(function () {
let breakFlag = false;
if(breakFlag){
// return false 等于 普通 for 循环中的 break
return false;
} else {
// return true 等于 普通 for 循环中的 continue
return true;
}
// do something ....
// ...
});
forEach
forEach 循环主要用于JS数组的遍历,常见情况是遍历ajax返回的数据.
forEach 是JS提供的API,而不是JQuery,希望大家注意.
jsArray.forEach(function(eachData){
// break;
return false;
// continue
return true;
});
for-in
for-in 循环只要用户遍历对象.
在简单的使用场景下,基本上用不到此种for循环.
不推荐使用for-in遍历数组
var obj = {};
for (var prop in obj) {
// continue
continue;
// break;
break;
}
for-of
如果你不喜欢forEach循环,而你的版本是JavaScript6及以后.
那么,你可以使用for-of循环
for(const val of array){
// continue
continue;
// break
break;
}
其他一些方法
其实,善用api我们可以少写很多无用的代码.
下面列出一部分api,虽然没有break和continue,不过它们可以帮助我们更好地对数组进行处理
filter 检测数值元素,并返回符合条件所有元素的数组
let oldArray = [16,17,18,19,20];
let newArray = oldArray.filter(val => val>= 18);
console.log(newArray);
// output: array[18,19,20]
every 检测数值元素的每个元素是否都符合条件
let oldArray = [16,17,18,19,20];
let bool = oldArray.every(val =>val >= 18);
console.log(bool);
// false
some 检测数组元素中是否有元素符合指定条件
let oldArray = [16,17,18,19,20];
let bool = oldArray.some(val =>val >= 18);
console.log(bool);
// true