javascript - JavaScript - 编写 indexOf 和 each
问题描述
我正在尝试重写 _.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;
}
推荐阅读
- python-3.x - 如果我将从 db 获取的索引号存储在变量中并在按索引从列表中选择时使用,m 得到错误作为预期字符串,int found-Robot Framework
- iteration - 赛普拉斯:检查href列表,断言它们不包含某个字符串
- python - 如何将 pytest 固定装置拆解与多次调用的函数一起使用?
- android - Android 上的 Xamarin Forms 初始图像纵横比
- json - (PowerShell) 如何从 JSON 输出中删除双引号?
- javascript - MERN:“无效的 API 密钥”Heroku 部署?
- python - requests_html + Django “线程 'Thread-1' 中没有当前事件循环。”
- python - AttributeError:模块“模型”没有属性“check_pw”
- apache-flink - Python API 是否支持 DataStream 和 Table 之间的转换
- python - 3 d 矩阵图,其中 x ad y 是 1 d 数组