更新 經過進一步測試,確實似乎可行,但控制檯輸出不正確;兩個陣列仍然看起來完全一樣。爲什麼我的數組在我洗牌時沒有被重新分配?
我使用如由這篇文章(靠近底部代碼)中所述的費 - 耶茨(德納)洗牌: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)',你會看到不同的值。 –