Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么find方法返回undefined?_Javascript_Functional Programming_Find_Each - Fatal编程技术网

Javascript 为什么find方法返回undefined?

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

我正在重新创建一些underline.js方法来研究JavaScript和一般编程

下面是我尝试重新创建下划线的
。.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!