我正在使用 node.js 服务器进行多人同步骰子,但是我遇到了一些奇怪的问题,即变量更改没有被引用或使用......
var origonalRolls = rolls;
//identify epic fails
var epicFails = [];
for(var r = 0; r < rolls.length; r++)
if(rolls[r] === 1)
epicFails.push(r);
console.log("TEST 1 :: " + JSON.stringify(rolls));
console.log("TEST 2 :: " + JSON.stringify(origonalRolls));
//remove epic fails and the corresponding heighest
if(epicFails.length > 0){
for(var i = epicFails.length-1; i >= 0; i--){
rolls.splice(epicFails[i], 1);
if(rolls[rolls.length-1] >= success)
rolls.splice(rolls.length-1, 1);
}
}
console.log("TEST 3 :: " + JSON.stringify(rolls));
console.log("TEST 4 :: " + JSON.stringify(origonalRolls));
上面应该找到rolls
数组中为 1 的任何元素,然后将其添加到epicFails
. 然后它应该从rolls
剩余的最高卷中移除它。(注意,rolls
按数字排序)
由于某种原因,这段代码的输出如下:
TEST 1 :: [1,1,2,3,3,6,7,7,9,9]
TEST 2 :: [1,1,2,3,3,6,7,7,9,9]
TEST 3 :: [2,3,3,6,7,7]
TEST 4 :: [2,3,3,6,7,7]
我不确定为什么rolls
并以相同的方式origonalRolls
开始并以相同的方式结束。我只使用rolls
.
欢迎对这个问题提供任何帮助和/或解释,这已经困扰我很长时间了......