Javascript 用户控制的每个函数

Javascript 用户控制的每个函数,javascript,callback,iteration,Javascript,Callback,Iteration,因此,我编写了一些类似jQuery的函数,老实说,它们很不错,但我开始思考,如果手头的用户不想从0开始,或者想要操作迭代器,该怎么办。我尝试了很多方法,但它似乎要么崩溃,要么导致无限循环。这里有一些例子 //a being an array of elements _$(a).each(function(i){ console.log(i); i++; }); //backend js each:function(fn){ var i = fn[0]; // equals the

因此,我编写了一些类似jQuery的函数,老实说,它们很不错,但我开始思考,如果手头的用户不想从0开始,或者想要操作迭代器,该怎么办。我尝试了很多方法,但它似乎要么崩溃,要么导致无限循环。这里有一些例子

//a being an array of elements
_$(a).each(function(i){
   console.log(i);
   i++;
});
//backend js
each:function(fn){
  var i = fn[0]; // equals the first argument in the callback
  for(i=0;i<this.length;)
     fn.call(this[i],i);

  return this;
},
下一个例子

//a being an array of elements
var inta = 6;
_$(a).each(function(i){
  console.log(i); 
},inta++);
//backend js
each:function(fn,iterator){
   var len = this.length;
   var ct = iterator;
   while(ct < len)
    fn.call(this[ct],ct);

   return this;
},

还有一些例子,它们也不起作用。所以问题是我如何像上面的第一个例子那样在函数中操作迭代器。如果不可能,那很好,只是好奇这个奇怪的可能性。

所以我在上面从map、filter、reduce、some、every中读到的东西,它们不能满足我的需要,因为我正在编写一个小型的最小库。所以我需要确切地知道迭代什么,在我的例子中是这个,但只有这个[INT]。因此,我在函数之后创建了一个可选参数,以添加到迭代器中

每个:功能fn,添加{ /* 首先检查是否分配了add 如果不是,则将其指定为1+1 i++ 如果是,请确保它不是导致无限循环的0 这将导致i+add */ 添加=0!==添加和添加| | 1;
forvar i=0;我不认为用户会这么做。每个都是最通用的迭代器函数,说实在的,没有那么有用。映射、过滤、减少、一些、每个……所有这些都将不同类型的循环/递归抽象掉,所以操纵索引变得不必要。我知道这一点,我只是尝试创建一个通用函数,以便轻松使用对于任何用户。这只是我自己的一个小库,因为我讨厌jQuery!!!对最佳用例有什么建议吗?对于你的例子,你可以有一个让我们称之为飞行前函数的函数,它在某些情况下会删除一些项。这是针对不从0开始的情况,然后在新数组上应用每个项。另外一个好的解决方案是agregator函数,您可以按照特定的顺序和特定的参数应用@elclanrs所述的所有上述函数。好的,我稍后会看一看。如果有人想用战略解决方案回答问题,谢谢您的评论。示例我将在这里检查,如果没有,我将在完成后获取示例。