break 或 continue 循环函数
停止循环是循环中一个常见的需求。使用for
循环我们可以用break
提前结束循环。
const a = [0, 1, 2, 3, 4];
for (var i = 0; i < a.length; i++) {
if (a[i] === 2) {
break; // stop the loop
}
console.log(a[i]);
}
//> 0, 1
另一个常见的需求使我们需要直接取得变量。
一个快速的方式是使用.forEach
,但是这样我们就失去了break
的能力。这种情况下,最接近的方式是使用return
实现continue
的功能。
[0, 1, 2, 3, 4].forEach(function(val, i) {
if (val === 2) {
// 怎么停止呢?
return true;
}
console.log(val); // your code
});
//> 0, 1, 3, 4
.some
是一个原型方法。他用来检测是否某些元素满足所提供的函数。如果任何元素最终返回true
,它就会停止运行。更多解释请看MDN。
引子上面链接的一个例子:
const isBiggerThan10 = numb => numb > 10;
[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true
使用.some
我们拥有了类似.forEach
的功能,而且使用return
实现了break
的效果。
[0, 1, 2, 3, 4].some(function(val, i) {
if (val === 2) {
return true;
}
console.log(val); // your code
});
//> 0, 1
你可以返回false
使循环continue
到下一个元素。当你返回true
时,循环将会break
,此时a.some(..)
将会return
true
。
// Array contains 2
const isTwoPresent = [0, 1, 2, 3, 4].some(function(val, i) {
if (val === 2) {
return true; // break
}
});
console.log(isTwoPresent);
//> true
还有.every
函数同样可以实现此功能。但此时我们需要返回与.some
相反的布尔值。
示例
MEET THE NEW JSTIPS BOOK
You no longer need 10+ years of experience to get your dream job.
Use the 100 answers in this short book to boost your confidence and skills to ace the interviews at your favorite companies like Twitter, Google and Netflix.
GET THE BOOK NOW
MEET THE NEW JSTIPS BOOK
The book to ace the JavaScript Interview.
A short book with 100 answers designed to boost your knowledge and help you ace the technical interview within a few days.
GET THE BOOK NOW