如何打破 Underscore.js 中的 _.each()函数?
不能破坏 _.each函数。原因是 _.each函数的工作方式与 forEach函数类似,并且模仿了它的本机行为。它不允许我们中断循环或从中逃脱,除非抛出异常。但是,可以使用不同的方法,例如:
- 抛出异常
- _.find()函数
- _.some()函数
抛出异常:可以在获得所需值时从每个抛出异常。
句法:
try {
_(arrayName).each(function(elementName){
// your code with condition where
// exception is to be thrown
})
}
catch(exception){
// dont do anything here
}
例子:
Output:
当检测到值 30 时抛出异常。否则计数 (cnt) 增加 1
_.find()函数: _.find()函数可用于在找到所需值时中断循环。结果可以存储在外部变量中。
_.find(arayName, function(elementName){
if(elementName == value){
return false;
}
// Write your own code
}
例子:
Output:0 1
这里 _.find()函数在达到值 30 时返回 false。否则计数 (cnt) 增加 1
注意:也可以在 catch 块之后包含 finally 块。
_.some()函数: _.some()函数类似于 _.find()函数,一旦检测到所需的值,就会停止遍历列表。结果可以存储在外部变量中。
句法:
_.some(arayName, function(elementName){
if(elementName==value){
return false;
}
// Write your own code
}
例子:
Output:0 1
这里 _.some()函数在检测到值 30 时返回 false。否则计数 (cnt) 增加 1。