我有一个这样定义的功能:
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
,该函数也始终返回值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";
}