Javascript 为什么find方法返回undefined?
我正在重新创建一些underline.js方法来研究JavaScript和一般编程 下面是我尝试重新创建下划线的Javascript 为什么find方法返回undefined?,javascript,functional-programming,find,each,Javascript,Functional Programming,Find,Each,我正在重新创建一些underline.js方法来研究JavaScript和一般编程 下面是我尝试重新创建下划线的。.find()方法 var find = function(list, predicate) { // Functional style _.each(list, function(elem){ if (predicate(elem)) { return elem; } }); }; var find = fu
。.find()
方法
var find = function(list, predicate) { // Functional style
_.each(list, function(elem){
if (predicate(elem)) {
return elem;
}
});
};
var find = function(list, predicate) { // Explicit style
if (Array.isArray(list)) {
for (var i = 0; i < list.length; i++) {
if (predicate(list[i])) {
return list[i];
}
}
} else {
for (var key in list) {
if (predicate(list[key])) {
return list[key];
}
}
}
};
var find=函数(列表,谓词){//函数样式
_.每个(列表、功能(元素){
if(谓词(elem)){
返回元素;
}
});
};
var find=函数(列表,谓词){//显式样式
if(Array.isArray(列表)){
对于(变量i=0;i
我的第二个
find
方法是使用for
循环和for in
循环。然而,我的第一个find
方法将返回undefined
。我认为两者应该做同样的工作。然而,他们没有。有人能指出发生了什么吗?您的返回只从内部(嵌套)函数返回,而查找
函数实际上没有返回任何内容,因此未定义
请尝试以下方法:
var find = function(list, predicate) { // Functional style
var ret;
_.each(list, function(elem){
if (!ret && predicate(elem)) {
return ret = elem;
}
});
return ret;
};
妈的,你比我快:(谢谢你的haim770和php_nub_qq!