我有一个这样定义的函数:
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/