javascript - 搞乱了我的 JavaScript 返回语句

标签 javascript function if-statement return

我有一个这样定义的函数:

  var getPhoneNumber = function (list, phoneType) {
    if (_.isEmpty(list)) {
      return "Not Entered"
    };
    _.each(list, function(phoneNo){

      if (phoneNo.name === phoneType) {
        return phoneNo.value;
      };
    });
    return "Not Entered";
  }

list 是一个 Array,而 phoneType 是一个 String。问题是该函数始终返回值 Not Entered,即使 list 不为空且 phoneNo.name 等于 电话类型。如果我在 if 中添加 console.log ,它会显示条件为 true 并打印 console.log 消息,但仍返回 未输入

最佳答案

return phoneNo.value; 并不对应于函数 getPhoneNumber,而是对应于在 _.each 处作为回调传递的函数。

你应该尝试这样的事情:

var getPhoneNumber = function (list, phoneType) {
    var value = null;
    _.each(list, function(phoneNo){

      if (phoneNo.name === phoneType) {
        value = phoneNo.value;
      }
    });

    if(value !== null)
        return value;
    else
        return "Not Entered";
  }

关于javascript - 搞乱了我的 JavaScript 返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843824/

相关文章:

javascript - 为什么我的 if-else 语句不起作用?

javascript - Alpine.js:如何使 ref 元素可见并专注于点击?

javascript - 如何使用模数运算符创建重复的 'A A B B' 模式

php - PHP 5.2上函数的意外T_FUNCTION

c - 在 C 语言中使用 struct Aliasname* 作为函数返回类型

javascript - 如何确保在 javascript 中只选择 2 个 div

javascript - AngularJS ng-show 图标在排序后无法正常工作

javascript - 添加或减去 $(window).scrollTop + $(window).height == $(document).height() - 滚动到页面底部等式

javascript - 一个下拉菜单的结果由两个决定

java - java中循环出现问题