~ 之前对于forEach方法了解的不多,在使用时,突然发现return true fasle break没有反应,仔细一看,还是大有文章,遂记……
当想跳出循环可以使用every 和 some方法,下面是简单的总结
every 当内部return false时跳出整个循环(return true;也是需要写)
//every()当内部return false时跳出整个循环
let list = [1, 2, 3, 4, 5];
list.every((value, index) => {
if(value > 3){
console.log(value)// 4
return false;
}else{
console.log(value)// 1 2 3
return true;
}
});
list.every((value, index) => {
if(value > 3){
console.log(value)
return false;
}else{
console.log(value)// 1
// return true;
// 如果没有返回值true 的话,也会跳出循环
}
});
forEach没有返回值,只针对每个元素调用func。
// forEach没有返回值,只针对每个元素调用func。
let list2 = [1, 2, 3, 4, 5];
list2.forEach((value, index) => {
if(value > 3){
console.log(value)// 4 5
return false;//没有返回值,ruturn false 仍向下执行
}else{
console.log(value)// 1 2 3
return true;
}
});
some 当内部return true时跳出整个循环
let list3 = [1, 2, 3, 4, 5];
list3.some((value, index) => {
if(value === 3){
return true;//当内部return true时跳出整个循环
}
console.log(value)// 1 2
});
map 有返回值,返回一个新的数组,每个元素为调用func的结果。
let list5 = [1, 2, 3, 4, 5];
let arr = [];
arr = list5.map((value, index) => {
return value * 2;
});
console.log(arr);//[2, 4, 6, 8, 10]
end