各要素の任意の最大値を持つ数値配列があります。[0, 0, 0]
配列が からになるように要素をインクリメントするにはどうすればよいでしょう[x, y, z]
か?
最大配列であるかどうかを説明するために、メイン配列をインクリメント[2, 1, 2]
で開始すると、次の手順を実行してメイン配列を取得する必要があります。[0, 0, 0]
[0, 0, 0]
[1, 0, 0]
[2, 0, 0]
[0, 1, 0]
[1, 1, 0]
[2, 1, 0]
[0, 0, 1]
[1, 0, 1]
[2, 0, 1]
[0, 1, 1]
[1, 1, 1]
[2, 1, 1]
[0, 0, 2]
[1, 0, 2]
[2, 0, 2]
[0, 1, 2]
[1, 1, 2]
[2, 1, 2]
最大値の 1 に達するとすぐにインクリメントを停止する関数を作成しました。これが私のコードです。
var maxes = [2, 1, 2];
var myArray = [0, 0, 0];
function step() {
for(var i = 0; i < myArray.length; i++) {
if(myArray[i] == maxes[i]) {
continue;
} else {
myArray[i] = myArray[i] + 1;
return;
}
}
return false;
}
for(j = 0; j < 100; j++) {
result = step();
if(!result) break;
console.log(result);
}