javascriptの1つのステートメントで2つのforループを実行できますか?私はこのようにしますか?
for(initialize1,initialize2; condition1,condition2; incrementation1,incrementation2)
javascriptの1つのステートメントで2つのforループを実行できますか?私はこのようにしますか?
for(initialize1,initialize2; condition1,condition2; incrementation1,incrementation2)
これらのどれを意味しますか?これにより、1つのループが実行され、condition1またはcondition2のいずれかが失敗するのを待ちます。
for (initialize1, initialize2; condition1 && condition2; incrementation1, incrementation2)
これにより、一方のループがもう一方のループ内にネストされて実行されます。
for (initialize1; condition1; incrementation1)
for (initialize2; condition2; incrementation2)
はい、そのようなforループを実行できますが、チェックする条件は1つだけです。And(&&)条件式など、すべての変数の1つの条件だけをチェックできる場合は、これで問題なく機能します。他の変数を使用して他のことを行う場合でも、問題なく機能します。
それを試してみてください:
for(var i=j=k=0; j<9 && k<12;i++, j++, k++){
console.log(i,j,k);
i = 12;
}
@ samdonly1
常に1つの評価しかありませんが、次のようなことができます。
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)