break 或 continue 循环函数,使用some同forEarch一样,但是直到找到就不继续往下循环,节省内存
停止循环是循环中一个常见的需求。使用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
相反的布尔值。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求