javascript - JS,函数返回 undefined 而不是 true 或 false

标签 javascript

我有一个函数可以检查一些参数并相应地返回 true/false。

我的问题是它返回 true(最后一个 return true;),但是当我再次调用这个函数时它会返回 console.log(return 1)console.log(return 2),该函数只执行 console.log() 然后返回 undefined 而不是 true。我的假设是它不允许从 .map() 返回,除非它完成运行?

isFlashingUnderscore() {
  let count = 0;
  if (!_.isEmpty(this.currentElement.value)) {
    _.map(Object.keys(this.currentElement.value), key => {
      count++
      if (this.currentElement.value[key].object_type == 'date_range') {
        return false;
      } else if (this.currentElement.value[key].object_type == 'date') {
        if (count >= 2) {
          console.log('return 1');
          return false;
        } else {
          console.log('return 2');
          return true;
        }
      } else {
        return true;
      }
    })
  } else {
    console.log('returns this true')
    return true;
  }
}

最佳答案

不是您实际问题的答案,但您的代码可以简化。在 return 之后,函数的其余部分不会被执行。你可以利用它:

isFlashingUnderscore(){
    let count = 0;
    if(!_.isEmpty(this.currentElement.value)){
        _.map(Object.keys(this.currentElement.value), key => {
            count++
            if (this.currentElement.value[key].object_type == 'date_range'){
                return false;
            }
            if(this.currentElement.value[key].object_type == 'date'){
                return false;
            }
            if (count >= 2) {
                return false;
            }
        })
    }
    return true;
}

通过简化它,可以更容易地理解正在发生的事情以及您不希望发生的事情。

关于javascript - JS,函数返回 undefined 而不是 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58958017/

相关文章:

javascript - 从另一个工作表复制信息的电子表格 - Javascript

javascript - 如何实现请求认证?

javascript - Javascript 中 reduce 方法的奇怪行为

javascript - 每次提交时,Rails 4 Ajax 在同一页面上多次渲染部分

javascript - javascript中 "location"对象的比较

javascript - 使用 Cordova 的 Windows 8 native 插件

javascript - 以编程方式滚动时是否保证触发 'scroll' 事件?

javascript - jQuery Searchable DropDown 插件不起作用

javascript - 使用 innerHtml 创建包含许多元素的 div 时出错

javascript - Moment JS : Deprecation warning: moment construction falls back to js Date. 这是不鼓励的,将在即将发布的主要版本中删除