for循环/for-in循环
for/for-in循环可以使用break/continue跳出循环break是终止当前循环continue是结束本次循环,后面的循环会继续执行
let arr = [1, 2, 3, 4, 5];
for(let i = 0; i < arr.length; i++){
if(i === 2) break; // break或continue
console.log(arr[i]);
}
// break 输出()
1
2
// continue 输出
1
2
4
5
let obj = { name: 'whh', age: '24', sex: 'male' };
for(let key in obj){
if(key === 'age') continue;
console.log(key, obj[key]);
}
// 输出
name whh
sex male
forEach循环
- 利用
return在特定时机跳出当前循环,后面的循环会继续执行
let arr = [1, 2, 3, 4, 5];
arr.forEach(item => {
if(item === 2) {
return;
}
console.log(item);
})
// 输出
1
3
4
5
- 利用
try…catch在特定时机抛出异常达到跳出整个循环的效果
let arr = [1, 2, 3, 4, 5], key;
try {
arr.forEach(item => {
if(item === 2) {
key = item; // 记录跳出循环时机
throw Error();
}
console.log(item);
})
} catch(error) {
// 跳出循环后要做的操作
...
}
console.log('跳出循环时机:' + key);
// 结果
1
跳出循环时机:2
汇总
|序号 |方法 |break |continue |return |return true|return false|
|:—- | ——- | ——- | ——- | ——- | ——- | ——- |
|1 |for循环 |成功 |跳出本次循环|不合法 |不合法 |不合法|
|2 |Array.forEach() |不合法 |不合法 |跳出本次循环 |跳出本次循环 |跳出本次循环|
|3 |for…in |成功 |跳出本次循环 |不合法 |不合法 |不合法|
|4 |Array.map() |不合法 |不合法 |跳出本次循环 |跳出本次循环 |跳出本次循环|
|5 |Array.some() |不合法 |不合法 |跳出本次循环 |成功 |跳出本次循环|
|6 |Array.every() |不合法 |不合法 |成功 |跳出本次循环 |成功|
|7 |Array.filter() |不合法 |不合法 |跳出本次循环 |跳出本次循环 |跳出本次循环|