Javascript 接受(对象或数组、迭代器)的函数出现问题
我想我最大的问题是关于参数“迭代器”。 我猜它接受一个函数。 我应该为该函数提供参数吗Javascript 接受(对象或数组、迭代器)的函数出现问题,javascript,Javascript,我想我最大的问题是关于参数“迭代器”。 我猜它接受一个函数。 我应该为该函数提供参数吗 // Call iterator(value, key, collection) for each element of collection. // Accepts both arrays and objects. _.each = function(collection, iterator) { if (typeof collection=='object') { for(let i
// Call iterator(value, key, collection) for each element of collection.
// Accepts both arrays and objects.
_.each = function(collection, iterator)
{
if (typeof collection=='object')
{
for(let i=0; i<Object.keys(collection).length; i++)
{
iterator(collection[i],Object.keys(collection)[i],collection);
}
}
else
{
for(let i=0; i<collection.length; i++)
{
iterator(collection[i],i,collection);
}
}
};
//为集合的每个元素调用迭代器(值、键、集合)。
//接受数组和对象。
_.each=函数(集合、迭代器)
{
if(集合类型=='object')
{
对于(让i=0;i两者,并将其称为一个迭代器而不是迭代器。这可能有助于避免与javascript迭代器混淆
iteratee是一个函数,将为您调用。您定义了该函数,每个
将为集合中的每个项调用它。文档将告诉您函数的签名应该是什么样子。例如下划线
将传递(元素、索引、列表)
为每个项目添加函数。由您编写函数并决定如何处理这些参数
例如,Lodash:
_.forEach([1, 2], function(value) {
console.log(value);
});
iteratee是匿名函数,它只使用值
参数。Hello@elderen,欢迎使用Stackoverflow。请向我们提供代码并询问与此相关的具体问题。您的假设可能不正确-。但是,您可能没有谈论ES6中定义的迭代协议-我们可能非常喜欢一个库我们有自己的迭代器,它实际上是一个函数。或者是一个对象,但它需要不同的方法/签名。如果不确切知道你在说什么,很难说——请在你的问题中添加相关信息,如链接、文档或代码。“这可能有助于避免与javascript迭代器混淆。”尽管如此,我还是发现名称令人困惑-iteratee听起来像是您正在操作的当前元素。基本上是for(someCollection的iteratee)
。相反,它实际上是操作(或其一部分)在该元素上执行-如果愿意的话,充当循环的主体。我不喜欢这里的名称是iteratee
或iterator
。但我也没有更好的建议-命名东西是一个问题。