我有以下代码
elements.filter(function(_, e){
terms.forEach(function(term) {
returnValue = true;
if(...) {
} else {
returnValue = false;
}
})
return returnValue;
})
我想知道是否有一种更简洁的方法return false
直接来自else
子句而不是使用临时变量,因为被迫使用{{1}会有点烦人}。
由于
答案 0 :(得分:2)
使用array#every - 该页面为老年浏览器提供了polyfill
elements.filter(function(_, e) {
return terms.every(function(term) {
if (...) {
...
return true;
} else {
return false;
}
});
})
请注意return term.every....
Array#every
调用回调直到回调返回false,在这种情况下Array#every
返回的值将为false,如果所有迭代都返回true,则Array#every
返回的值将为true ...所以每次返回必须为true才能返回true,否则返回false并停止迭代
答案 1 :(得分:0)
为什么不呢
return false;
来自forEach的事情?
除非你 在返回之前至少经过一次所有项目。这可以让你跳过使用额外的变量。
你可以通过否定表达式
来摆脱无用的if块if(!your-expression)
{
return false;
}
return true;