我正在使用mes.js和MongoDB构建一个应用程序,我有一个关于cursor.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();
  }
});

我知道我可以使用游标将游标转换为array.查找().fetch()然后使用regular for循环遍历元素,并正常使用continue和break,但我对forEach()中是否有类似的东西感兴趣.

推荐答案

forEach()的每次迭代都会调用您提供的函数.要停止任何给定迭代中的进一步处理(并继续进行下一项),只需在适当的点从函数中 Select return即可:

elementsCollection.forEach(function(element){
  if (!element.shouldBeProcessed)
    return; // stop processing this iteration

  // This part will be avoided if not neccessary
  doSomeLengthyOperation();
});

Javascript相关问答推荐

获取Uint8ClampedArray中像素数组的宽度/高度

XSLT处理器未运行

如何使onPaste事件与可拖动的HTML元素一起工作?

如何使用子字符串在数组中搜索重复项

保持物品顺序的可变大小物品分配到平衡组的算法

连接到游戏的玩家不会在浏览器在线游戏中呈现

自定义确认组件未在vue.js的v菜单内打开

AJAX POST在控制器中返回空(ASP.NET MVC)

Next.js中的服务器端组件列表筛选

Docent.cloneNode(TRUE)不克隆用户输入

在SuperBase JS客户端中寻址JSON数据

JQuery使用选项填充HTMLSELECT并设置默认结果,默认结果显示为空

无法在Adyen自定义卡安全字段创建中使用自定义占位符

带有JS模块模式的Rails的Importmap错误:";Net::ERR_ABORTED 404(未找到)&Quot;

响应,Use Callback更新状态变量,该变量也存在于其依赖数组中,它如何防止无限重新呈现?

如何让noWrap在嵌套在Alert/AlertTitle组件中的排版组件中工作?

如何在使用FOR AWAIT时从异步生成器中获取返回值

无法从fixture 文件中提取数据

Nextjs Google自动补全给出了不正确的值

使用关键帧的CSS动画未按预期工作