JavaScript - 编写 indexOf 和 each

标签 javascript underscore.js each indexof

我正在尝试重写 _.each 和 _.indexOf,它让我陷入了循环。

我的每个函数接受一个对象或一个数组并通过测试设置。

_['each'] = function(collection, iterator) {
if (Array.isArray(collection) === false && typeof(collection) === 'object') {
  var values = Object.values(collection);
  var keys = Object.keys(collection);
  for (let i = 0; i < values.length; i++) {
    iterator(values[i], keys[i], collection, i);
  }
} else {
  for (let i = 0; i < collection.length; i++) {
    iterator(collection[i], i, collection);
    }
  }
}

所以我假设这段代码没问题,因为它通过了预设测试,但我什至不确定。我的问题是,我将如何编写也使用 each() 函数的 indexOf() 函数?每个都会为每个元素运行一个函数并且不会中断,对吗?而且我无法通过 collection[i] 访问索引,因为 i 在 indexOf 的范围内未定义。我错过了什么?

最佳答案

伪代码,检查是否需要完整的 javascript 代码:

indexOf = function(element, array){

    // found index
    index = -1;


    // for each element, compare element, store index if found
    each array (function(e, i){

          // use cmp function to deep compare object/array as values
          if(e === element)
          {
              // remove condition for lastIndexOf
              if(index == -1)
              {
                 index = i;
              }
          }

    });

    // return found index
    return index;

}

关于JavaScript - 编写 indexOf 和 each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56221264/

相关文章:

javascript - 为什么对象名前需要 "function"关键字?所有对象都是真实的功能?

javascript - 使用 Underscore.js 的 lastIndexOf 调用

javascript - 将字符串数组转换为日期,对其进行过滤并转换回字符串

jquery - 显示与父级相同类的图像,与列表项的 ID 相同

jQuery 跳过嵌套 .each 中父循环的迭代

javascript - 套件与规范 Protractor

javascript - 使用 JavaScript/jQuery 删除或替换样式表(<link>)

backbone.js - underscore.js 模板中的每个循环

javascript - 如何循环脚本 x 次。 (使用 x 变量)

javascript - JWT 与 k6 签约