如何终止forEach的循环遍历
原文参考链接:How to break out of the forEach
背景:
我很喜欢使用Array.prototype.forEach方法,但是有时候我想要break forEach 的循环,好几次我都遇到了这个问题,我无法退出循环! 所以我只能通过再增加一个变量来控制,知道我看到了这篇文章。
Array.prototype.forEach
我该如何退出forEach循环? 好吧....你没有办法从forEach中退出循环
Example:
var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];
ary.forEach(function(value, index, _ary) {
console.log(index + ": " + value);
return false;
});
结果是: 所有的元素内容都被打印出来了,那我该怎么办?
不要使用"forEach"
方法,使用“some”
或者"every"
方法
Array.prototype.some
some方法和forEach方法很相似,但是当return值为true的时候,它会终止遍历
Example:
var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];
ary.some(function (value, index, _ary) {
console.log(index + ": " + value);
return value === "CoffeeScript";
});
结果是:
0: Javascript
1: Java
2: CoffeeScript
Array.prototype.every
every 是一个和some差不多的方法,但是它是当返回值为false的时候退出循环
Example:
var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];
ary.every(function(value, index, _ary) {
console.log(index + ": " + value);
return value.indexOf("Script") > -1;
});
结果是:
0: JavaScript
1: Java