如何在 JS 中创建自定义双精度循环



所以目前我正在尝试创建一个javascript应用程序,该应用程序使用相当多的嵌套循环,例如。

for (var i = 0; i < a; i++) {
    for (var j = 0; j < b; j++) {
        //Code to run
    }
}

所以为了整洁起见,我想我可以为此目的做一些可以像这样调用的功能

doubleLoop(conditionA, conditionB) {
    //Code to execute
}

这在 Javascript 中是否可能,或者我只需要使用双 for 循环的负载?

我想你可以做一些事情,比如制作conditionAconditionB函数或其他东西,但更简单的替代方案是将你的功能拆分为函数。

像这样:

function draw(){
  doOuterTask();
}
function doOuterTask(){
  for (var i = 0; i < a; i++) {
    doInnerTask();
  }
}
function doInnerTask(){
  for (var j = 0; j < b; j++) {
    //Code to run
  }
}

下面是一个更具体的示例:

function setup() {
  createCanvas(400, 400);
}
function draw() {
  background(0);
    drawGrid(10, 10);
}
function drawGrid(rowCount, columnCount){
    for(var rowIndex = 0; rowIndex < rowCount; rowIndex++){
        drawRow(rowIndex, rowCount, columnCount);
    }
}
function drawRow(rowIndex, rowCount, columnCount){
    for(var colIndex = 0; colIndex < columnCount; colIndex++){
        var circleWidth = width/columnCount;
        var circleHeight = height/rowCount;
        var x = colIndex * circleWidth;
        var y = rowIndex * circleHeight;
        fill(255);
        ellipse(x, y, circleWidth, circleHeight);
    }
}

此代码绘制一个圆圈网格,您可以使用嵌套的 for 循环执行此操作。相反,它会创建一个绘制单行圆圈的 drawRow() 函数,然后从 drawGrid() 函数调用该函数。drawGrid() 函数遍历每一行并调用 drawRow() 函数,该函数循环遍历该特定行中的每个圆圈。

这样做的好处是,您一次只需要担心一个循环,并且它还使测试变得更加容易,因为您可以直接调用"内部函数"来测试它是否按预期方式工作。

最新更新