从else子句返回false

时间:2016-11-30 08:23:36

标签: javascript

我有以下代码

elements.filter(function(_, e){
  terms.forEach(function(term) {
    returnValue = true;
    if(...) {
    } else {
      returnValue = false;
    }
  })
    return returnValue;
})

我想知道是否有一种更简洁的方法return false直接来自else子句而不是使用临时变量,因为被迫使用{{1}会有点烦人}。

由于

2 个答案:

答案 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;