Array.forEach 实现了短路
ForEach 没有固有的方式来实现中断。必须抛出某种异常才能中断执行。例如:
var BreakException = {};
try {
[1, 2, 3].forEach(function(el) {
console.log(el);
if (el === 2) throw BreakException;
});
} catch (e) {
if (e !== BreakException) throw e;
}
JavaScript 异常并不完美。如果您确实需要中断,传统循环可能更合适。
使用Array.some
也可以使用Array.some方法
[1, 2, 3].some(function(el) {
console.log(el);
return el === 2;
});
这是因为,一旦以任何数组顺序执行的回调返回 true,就会出现一些返回 true 的回调,从而短路其余回调的执行。
var Book = {"Titles":[
{
"Book3" : "BULLETIN 3"
}
,
{
"Book1" : "BULLETIN 1"
}
,
{
"Book2" : "BULLETIN 2"
}
]}
var findbystr = function(str) {
var return_val;
Book.Titles.forEach(function(data){
if(typeof data[str] != 'undefined')
{
return_val = data[str];
}
}, str)
return return_val;
}
book = findbystr('Book1');
console.log(book);
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:js 数字转换为基数 下一篇:js滚动到页面顶部
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。