我可以在 javascript 的一个语句中运行两个 for 循环吗?我会这样做吗?
for(initialize1,initialize2; condition1,condition2; incrementation1,incrementation2)
我可以在 javascript 的一个语句中运行两个 for 循环吗?我会这样做吗?
for(initialize1,initialize2; condition1,condition2; incrementation1,incrementation2)
你指的是哪一个?这将执行一个循环并等待条件 1 或条件 2 失败:
for (initialize1, initialize2; condition1 && condition2; incrementation1, incrementation2)
这将执行嵌套在另一个循环中的一个循环:
for (initialize1; condition1; incrementation1)
for (initialize2; condition2; incrementation2)
是的,您可以执行这样的 for 循环,但是您只有一个条件进行检查。如果你可以让它只检查所有变量的一个条件,例如 And (&&) 条件表达式,这将正常工作,或者如果你只是使用其他变量做其他事情,它也可以正常工作。
试试看:
for(var i=j=k=0; j<9 && k<12;i++, j++, k++){
console.log(i,j,k);
i = 12;
}
@samdonly1
总是你只会有一个评估,但你可以做这样的事情:
function evalFor(i, j, k){
if (k == 9) return false;
else if (j == 7) return false;
else if (i == 12 && j == 6) return false;
else return true;
}
for(var i=j=k=0; evalFor(i, j, k);i++, j++, k++){
console.log(i,j,k);
i = 11;
}
在这种情况下,您可以在其他函数中检查变量 i、j、k 并决定循环是停止还是继续。
我的意思是,我这样做的方式基本上是尝试访问位置 [0,2],[1,1],[2,0] 的嵌套数组我的解决方案很简单。每次循环运行一个计数器
let matrix = [
[1,2,3],
[4,5,6],
[7,8,9]
]
let leftDiag = []
let rightDiag = []
let counterJ =matrix.length-1
for(let i =0;i<matrix.length; i++){
leftDiag.push(matrix[i][i])
rightDiag.push(matrix[i][counterJ])
console.log(i, counterJ)
counterJ-=1
}
console.log(leftDiag)
console.log(rightDiag)