js中几种循环的退出方式
some退出循环:return / return true(不能return false) every退出循环:return false。every():相当于且,只要有一个不满足条件,就return false,只有都满足条件才会返回true。用return、break、continue的方式都不能终止forEach循环,some():相当于或,只要有一个满足条件,就return true。br
·
一、for循环
终止for循环的方式:break
和continue
break:整个循环结束 continue:退出本次循环
let list = [1, 2, 3, 4]
for (let i = 0; i < list.length; i++) {
if (i == 1) {
continue
}
if (i == 2) {
break;
}
}
二、forEach循环
用return、break、continue的方式都不能终止forEach循环,return
在forEach里相当于for循环里的continue,能够退出本次循环
,可以使用try...chtch
终止foreach循环
try{
var array = ["first","second","third","fourth"];
// 执行到第3次,结束循环
array.forEach(function(item,index) {
if(item == "third"){
throw new Error("EndIterative");
}
console.log(item); // first second
});
}catch(e){
if(e.message != "EndIterative") throw e;
}
// 下面的代码不影响继续执行
console.log("继续执行。。。");
二、map循环
终止map循环的方式和forEach相同
let list = [1, 2, 3, 4]
try {
list.map(item => {
console.log('执行');
if (item == 1) {
throw new Error('stop')
}
})
} catch (e) {
if (e.message !== 'stop') {
throw e
}
}
三,for in 循环
for…in循环主要是为了遍历对象的,break或continue可以生效
const person = {
name: "111",
age: 18,
1: 1,
job: "student",
};
for (const key in person) {
if (key === "age") {
break;
}
if (key === 'name') {
continue;
}
}
四,for of 循环
for…of和for…in都能用break和continue结束(跳出当前)循环
我们都知道for…of只能用来遍历那些内置iterator(Array, Atring, ArrayLike, Set, Map…)或者实现了iterator方法的数据类型,而普通的Object并没有内置iterator
for (const val of arr) {
if (val === 2) {
continue;
}
if (val === 3) {
break;
}
}
五,every()和some()
every()
:相当于且,只要有一个不满足条件,就return false,只有都满足条件才会返回true
some()
:相当于或,只要有一个满足条件,就return true
let list = [
{ name:"aaa", age:3 },
{ name:"bbb", age:4 },
{ name:"ccc", age:5 },
]
var every = list.every(function (item) {
return item.age > 4
})
console.log(every ) // false
var some = list.some(function (item) {
return item.age > 4
})
console.log(some) // true
some退出循环:return / return true, every退出循环:return false
更多推荐
已为社区贡献1条内容
所有评论(0)