好吧,所以我正在用这根头发拔头发。我正在尝试创建一个可以洗牌的虚拟功能。我在网上看到了示例,但是它们是用我不熟悉的某些语法编写的。我真的不明白发生了什么,所以我尝试自己写。无论如何,我要做的就是制作一个重复的阵列,然后从第一个阵列中随机挑选卡片并将它们逐个放入第二个阵列,然后删除随机选择的卡片。这是我的代码。一旦原始数组的长度达到26,该函数将停止。
shuffleDeck: function (deck) {
var newDeck = deck;
for (i = 0; i<newDeck.length;i++){
randomIndex = Math.floor(Math.random() * deck.length);
newDeck[i] = deck[randomIndex];
deck.splice(randomIndex,1);
console.log(deck.length);
}
return newDeck;
}
最佳答案
数组是通过JavaScript中的引用传递的,因此拼接将从数组中删除,这就是它停止的原因
看到
http://orizens.com/wp/topics/javascript-arrays-passing-by-reference-or-by-value/
你可以做
var newDeck = deck.slice(0);
复印