当前位置: 首页 > 面试题库 >

如何停止JavaScript forEach?[重复]

尤博达
2023-03-14
问题内容

我正在使用nodejs和mongoose —尝试在嵌套有递归函数和foreach的深层注释中找到特定的注释。有没有一种方法可以停止nodejs
forEach?据我了解,每个forEach迭代都是一个函数,并且我不能只执行“ break”,而只能执行“ return”,但这不会停止foreach。

function recurs(comment){
    comment.comments.forEach(function(elem){
        recurs(elem);
        //if(...) break;
    });
}

问题答案:

您无法打破forEach。不过,我可以想到三种伪造方法。

1.The Ugly Way :传递给第二个参数forEach,以如上下文中使用,并存储在那里一个布尔值,然后使用if。看起来糟透了。

2.The Controversial Way:将整个内容围成一个try-catch块,当您想破坏时抛出异常。这看起来很糟糕,可能会影响性能,但是可以封装。

3.The Fun Way :使用 every()

['a', 'b', 'c'].every(function(element, index) {
  // Do your thing, then:
  if (you_want_to_break) return false
  else return true
})


 类似资料:
  • 以下程序应显示一个窗口,要求输入1到12之间的数字。每个数字设置为一个月的值(1=一月等)。然后,它应该输出输入的月份所在的一年中的一个季度(1=一月;一月=一年中的一个季度)。错误的输入号码应向用户输出错误消息。以开关箱为例进行了评价。 到目前为止,几乎所有的东西都在工作,但我遇到的问题是,当我输入一个超出范围(1到12)的数字时,这意味着小于1或大于12,我首先会得到输出消息“输入错误!”然后

  • 问题内容: 该程序在九次打印后完成: 如何停止进程(例如eclipse中的Java进程),因为它在9秒的时间限制后没有停止? 问题答案: 您遇到的问题是,取消哔声任务后,调度程序会保留活动线程。 如果存在活动的非守护程序线程,则JVM保持活动状态。 它使该线程保持不变的原因是您已在此行中告诉它这样做: 请注意以下文档: -即使在空闲状态下要保留在池中的线​​程数。 因此,您有两种可能的方法来导致J

  • 问题内容: 我有一个goroutine,它调用一个方法,并在通道上传递返回的值: 如何停止这种goroutine? 问题答案: 编辑: 在意识到您的问题是关于将值发送到goroutine中的chan之前,我匆忙编写了此答案。 下面的方法可以与上面建议的其他chan一起使用,或者利用您已经拥有的chan双向的事实,您可以只使用一个… 如果您的goroutine仅用于处理来自chan的项目,则可以使用

  • 问题内容: 要找出mysqld的启动命令(使用Mac),我可以这样做: 我得到以下输出,这使我可以启动mysql服务器。 我如何找到必要的命令以从命令行停止mysql? 问题答案: 尝试: 要么: 要么: 要么: 如果 在OSX中 安装 Launchctl,则 可以尝试: MacPorts 注意:重新启动后,此设置将持续存在。 家酿 二进制安装程序 我发现在:https : //stackover

  • 更新:我试过那些设置,但它们也不起作用。

  • 问题内容: 其实我的问题是,当我单击该项目时,它会转到DetailsFragment。但是,当我返回到ItemListFragment时,项目编号增加了,并且发生了重复。请帮助我从中恢复..预先感谢.... ItemListGridAdapter 详细片段 问题答案: 做这个 这样,您的数据将不再重复。试试看,让我知道它是否对您有用。