我可以在 Javascript for...in 和 for...of 循环中使用 continue 和 break 吗?
Posted
技术标签:
【中文标题】我可以在 Javascript for...in 和 for...of 循环中使用 continue 和 break 吗?【英文标题】:Can I use continue and break in Javascript for...in and for...of loops? 【发布时间】:2019-11-11 22:10:29 【问题描述】:我可以在for...in
和for...of
类型的循环中使用break
和continue
语句吗?或者它们只能在常规 for
循环中访问。
例子:
myObject =
propA: 'foo',
propB: 'bar'
;
for (let propName in myObject)
if (propName !== 'propA')
continue;
else if (propName === 'propA')
break;
【问题讨论】:
为什么不自己试试呢?在条件中添加调试器或控制台日志 这是一个简单的好问题。为什么这不适合 ***? @Persijn 缺乏研究。这太简单了——只需运行已经存在的代码并稍作改动(添加日志语句)就可以找到答案。更不用说数以千计的 其他在线资源了。如果问题是“我可以在代码中使用与propName
不同的名称吗”,您还会说这是一个好问题吗?
我认为这个问题很好,因为我可以看到其他用户正在搜索这个问题。即使可以在其他地方找到答案,我也可以在 *** 上看到这个问题的价值。
@Persijn 这是一个公平的观点。
【参考方案1】:
是的 - 适用于所有循环。
const myObject =
propA: 'foo',
propB: 'bar'
;
for (let propName in myObject)
console.log(propName);
if (propName !== 'propA')
continue;
else if (propName === 'propA')
break;
(循环我的意思是for
,for...in
,for...of
,while
和do...while
,不是forEach
,这实际上是在Array原型上定义的函数.)
【讨论】:
可能有一种方法可以在 forEach 中获得相同的行为。这可能是另一个好问题。 我认为forEach
并不是一个真正的循环,而是一个带有回调参数的函数。此外,break
不限于循环,而是所有blocks (MDN link),这与continue
不同
并非所有块 - 只是循环和切换。
...和标记的块。
哦,是的,那些也是@Teemu。以上是关于我可以在 Javascript for...in 和 for...of 循环中使用 continue 和 break 吗?的主要内容,如果未能解决你的问题,请参考以下文章