我们有一个数值数组,每个元素都有任意最大值。我们如何增加元素以使数组从[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);
}