这是我要发送的代码:
for (var com = 0; com < 10; com++) {
var op = [0, 1, 2, 3];
combo = op[Math.floor(Math.random() * op.length)];
door1[com] = combo;
op.splice(combo, 1);
combo = op[Math.floor(Math.random() * op.length)];
door2[com] = combo;
op.splice(combo, 1);
combo = op[Math.floor(Math.random() * op.length)];
door3[com] = combo;
op.splice(combo, 1);
combo = op[Math.floor(Math.random() * op.length)];
door4[com] = combo;
eim.print(op.toString());
}
现在当我打印 op 数组时。我应该只得到 1 个值,因为我已经删除了其他索引。与接头。 但是当我打印结果10次时。我发现有些索引没有删除。 我正在尝试创建 4 个不同的组合。每个组合都与其他组合不同。
最佳答案
你正在做的是,
Array.splice(combo,1);
现在它试图做的是从索引为combo
的数组中拼接一个元素,现在combo可以是任何值,但它不是索引。
你可以通过索引来尝试,FIDDLE
代码:
door1={}
door2={}
door3={}
door4={}
var index=null;
for (var com = 0; com < 10; com++) {
var op = [0, 1, 2, 3];
index=Math.floor(Math.random() * op.length)
combo = op[index];
door1[com] = combo;
op.splice(index, 1);
index=Math.floor(Math.random() * op.length)
combo = op[index];
door2[com] = combo;
op.splice(index, 1);
index=Math.floor(Math.random() * op.length)
combo = op[index];
door3[com] = combo;
op.splice(index, 1);
index=Math.floor(Math.random() * op.length)
combo = op[index];
door4[com] = combo;
document.write(op.toString()+'<br>');
}
关于javascript - JS数组拼接由于某种原因没有删除索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32375201/