【发布时间】:2015-04-04 10:53:32
【问题描述】:
我有一个数组[1,1,1,0](任何大小),数组和数字 1 的最小长度是 3。我想继续向上移动 1s 1 元素的值,以便它可以移动到 [0,1,1,1],然后返回到[1,1,1,0]。
我的循环在递归模式下工作,但我不确定如何重置这些值,所以在 4 次循环之后,我的整个数组都被 0 填充。
更长的数组会这样遍历:
例子:
[1,1,1,0,0,0]-> [0,1,1,1,0,0]-> [0,0,1,1,1,0]-> [0,0,0,1,1,1]->
[1,1,0,0,0,1]-> [1,1,1,0,0,0]-> [0,1,1,1,0,0]-> [0,0,1,1,1,0]->
永远如此……
代码:
function flip(images, active) {
var new_active = active;
setTimeout(function() {
active.reverse();
active[active.length] = 0;
active.reverse();
active.pop();
for(var i = 0; i < active.length; i++) {
alert(active[i]);
}
flip(images, active);
}, 5000);
}
【问题讨论】:
-
不太明白你想做什么。是 [1,1,1,0]->[0,1,1,1]->[1,0,1,1]->[1,1,0,1]->[1,1, 1,0] 好吗?举个例子吧。
-
我添加了一个数组大小更大的示例。
-
这很容易理解。也许这叫轮换,你看到3个答案了吗?
标签: javascript arrays loops recursion