我正在使用meteor构建一个应用程序。js、MongoDB和我有一个关于游标的问题。forEach()。我想在每个forEach迭代开始时检查一些条件,如果不需要对元素执行操作,则跳过该元素,这样可以节省一些时间。
这是我的代码:
// Fetch all objects in SomeElements collection
var elementsCollection = SomeElements.find();
elementsCollection.forEach(function(element){
if (element.shouldBeProcessed == false){
// Here I would like to continue to the next element if this one
// doesn't have to be processed
}else{
// This part should be avoided if not neccessary
doSomeLengthyOperation();
}
});
我知道我可以使用cursor.find()将游标转向数组。获取(),然后使用常规的for循环来迭代元素,并使用继续和正常中断,但我感兴趣的是,如果有类似的东西可以在foreach()中使用。
这里有一个解决方案,它使用了of的和
继续
而不是forEach的
来实现:
let elementsCollection = SomeElements.find();
for (let el of elementsCollection) {
// continue will exit out of the current
// iteration and continue on to the next
if (!el.shouldBeProcessed){
continue;
}
doSomeLengthyOperation();
});
如果您需要在循环中使用异步函数,而这些函数在
forEach
中不起作用,那么这可能会更有用。例如:
(async fuction(){
for (let el of elementsCollection) {
if (!el.shouldBeProcessed){
continue;
}
let res;
try {
res = await doSomeLengthyAsyncOperation();
} catch (err) {
return Promise.reject(err)
}
});
})()
我认为最好的方法是使用filter
方法,因为在forEach
块中返回是没有意义的;有关代码段的示例:
// Fetch all objects in SomeElements collection
var elementsCollection = SomeElements.find();
elementsCollection
.filter(function(element) {
return element.shouldBeProcessed;
})
.forEach(function(element){
doSomeLengthyOperation();
});
这将缩小元素集合的范围
,只需对应该处理的元素进行过滤即可。
每个迭代的foreach()
将调用您提供的函数。要在任何给定的迭代中停止进一步的处理(并继续下一项),您只需在适当的点从函数返回:
elementsCollection.forEach(function(element){
if (!element.shouldBeProcessed)
return; // stop processing this iteration
// This part will be avoided if not neccessary
doSomeLengthyOperation();
});
'continue'或'break'语句与其标签名称之间不允许换行符。 例子 (Example) outerloop: // This is the label name for (var i = 0; i < 3; i++) { console.log("Outerloop: " + i); for (var j = 0; j < 5; j++) { if
跳过当前循环的剩余部分并继续下一次循环。在各种循环中都是有效的。 Continue [, LoopLabel] [AHK_L 59+]:如果指定了,则 LoopLabel 表示此语句所应用的循环;通过标签名或嵌套层级的数值。如果省略或为 1,此语句应用于它所在的最内层循环。LoopLabel 必须为常量,不支持变量和表达式。如果指定标签,则它必须直接指向循环命令。 Continue 的行为如同直接
简介 本章介绍的是Scheme中特有的数据类型——继续(Continuation)。由于其他程序设计语言并没有这种数据类型,因此它难于理解。当下,你并不需要彻底理解清楚,只需要大致了解。 我会讲解广义的继续和简短地介绍Continuation-Passing-Style(CPS),然后再讲解Scheme中的继续。我认为通过这种方式理解继续会比较容易。 广义继续 继续是在返回到顶层(Top leve
当我试图在从Panel1类的下一个JButton触发action事件时调用panel2类的JPanel2时,我得到了NullPointerException。对此如何化解?plzz帮助。 我的最后一个问题JPanel的Nullpointerexception已经被你们成功解决了。请在这方面提供帮助。这个例外正在吞噬我的脑袋。
因此,我尝试将依赖项加载到代码中,然后得到以下结果: TypeLoadException:无法加载“类型”系统。数据SqlClient。SqlConnection“来自程序集”系统。数据,版本=2.0.0.0,区域性=中立,PublicKeyToken=b77a5c561934e089'。系统反射MonoMethodInfo。GetMethodInfo(IntPtr句柄)(at/Users/bui
本文向大家介绍Java嵌套中断/继续,包括了Java嵌套中断/继续的使用技巧和注意事项,需要的朋友参考一下 示例 这是可能的break/continue到外环使用标签声明: Java中的标签没有其他用途。