javascript - 在 Javascript 中重写 _.find 函数时得到 "undefined"

标签 javascript functional-programming underscore.js

我正在尝试重写下划线 _.find() 以进行练习,并且在运行它时变得不确定。继承人的代码:

// _.find(list, predicate, context);

var findIt = function(list, predicate) {
    for (var i = 0; i < i.length; i++) {
        if (predicate(list[i]) == true) 
            {return i;} 
        else{return false;}
    }
}

var predicate = function (first) {
    return first % 2 == 0;
}

console.log(findIt(arr, predicate));

var arr = [1, 2, 3, 5]; 

这里出了什么问题?

最佳答案

代码中的问题列表

  1. 您正在为 arr 赋值,仅在将其传递给 findIt 函数之后。因此,它将具有默认值 undefined

  2. 在 for 循环中,如果第一个元素与预期的元素不匹配,那么您将立即返回 false,但您应该在返回 之前检查所有元素错误

  3. 循环必须在 list 的长度上运行,但是您正在使用 i.length,这将不起作用,因为 i 是一个数字,它不会有 length 属性。

关于javascript - 在 Javascript 中重写 _.find 函数时得到 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194228/

相关文章:

javascript - 获取脚本以返回 HTML 中的链接

javascript - 从for()移到map()-无法绕开它

java - 如何映射 "Try with resources"异常类型?

algorithm - 我怎样才能加快我的 Aho-Corasick 算法?

javascript - 使用 Underscore 将嵌套 JSON 展平为键控值数组

javascript - 如何使用 _.filter 按名称和排名排序?

javascript - 在 RequireJS 环境下模拟使用 Lo-Dash 和 Underscore

javascript - 为什么 javascript 在 toString 方法中用 0 替换数字?

javascript - 多边形 GeoJSON 功能将在控制台中加载,但不会在传单中显示

javascript - MVC JavaScript 相对路径