我有一个这样定义的功能:

  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";
  }


listArray,而phoneTypeString。问题在于,即使Not Entered不为空并且list等于phoneNo.name,该函数也始终返回值phoneType。如果我在console.log中添加if,则表明条件为true并打印console.log消息,但仍返回Not Entered

最佳答案

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";
  }

07-24 19:03