更新 经过进一步测试,确实似乎可行,但控制台输出不正确;两个阵列仍然看起来完全一样。为什么我的数组在我洗牌时没有被重新分配?
我使用如由这篇文章(靠近底部代码)中所述的费 - 耶茨(德纳)洗牌:http://bost.ocks.org/mike/shuffle/
此代码正确地混洗元件的阵列。我已经在控制台中进行了测试以验证。我正在研究一个项目,我需要对一组数组进行混洗。这段代码可以正确地洗牌数组,因为它是数据不可知的。
但是,当我尝试将数组分配给新值时,它不会更改。例如:
data = [['1','2','3'],['4','5','6'],['7','8','9'],['10','11','12']];
data = shuffle(data); //Value of data does not change, even though shuffle works
当我在控制台中执行
shuffle(data);
它返回阵列的正确混洗阵列。
我创造了这个的jsfiddle所以你可以看到:http://jsfiddle.net/herbstmb/Ve24U/
如果您在控制台明确洗牌的作品看,但分配失败。
非常感谢任何帮助了解正在发生的事情。
使用Chrome浏览器在这里工作得很好! – adeneo
对我也适用 – ochi
由于对'data'的引用永远不会改变,所以输出在你登录数组时都是相同的。如果你用'console.log(JSON.stringify(data))'替换'console.log(data)',你会看到不同的值。 –