如何访问Javascript中循环函数的helper中的迭代器

How to access iterators in helper for loop functions in Javascript

本文关键字:循环 函数 helper 迭代器 Javascript 何访问 访问      更新时间:2023-09-26

我正试图创建一个助手函数,使我能够轻松地嵌套for循环。在我的特定脚本中,我有很多2D阵列要处理。

function array2D(iLen,jLen, callback){
   var i, j;
   for( i =0; i <iLen; i++){ 
       for( j= 0; j <jLen; j++){
          callback();
       }
  }
}

如果我想访问回调函数中的Ij迭代器,我该如何重写函数?例如,如果我想将以下内容传递到array2D:

function(){
   console.log(i +" "+j);
}

我试图在array2D()中创建setter函数,但问题是返回I或j会阻止函数操作完成。

使用ij 进行回调

function array2D(iLen,jLen, callback){
    var i, j;
    for( i =0; i <iLen; i++){ 
        for( j= 0; j <jLen; j++){
            callback(i,j);
        }
    }
}

使用:

array2D(10, 20, function(i,j){
    console.log(i+' '+j)
})

您可以将自己的功能定义为:

var callback = function(i,j){
    console.log(i +" "+j);
}

然后像你已经做过的那样通过它。在调用回调时,必须传递参数。

callback(i,j);

var callback = function(i,j){
    document.write(i +" "+j+"</br>");
}
function array2D(iLen,jLen, callback){
   var i, j;
   for( i =0; i <iLen; i++){ 
       for( j= 0; j <jLen; j++){
          callback(i,j);
       }
  }
}
array2D(3,4,callback);

尝试使用arguments

callback(i, j);

function() {
   console.log(arguments);
}