Javascript 由于未知原因,我的洗牌功能在26停止。我怎样才能让它洗牌?
好的,所以我用这个拔头发。我正在尝试做一个函数,它将洗牌一副虚拟的牌。我在网上看到了一些例子,但它们是用我不熟悉的语法编写的。我真的不明白发生了什么,所以我试着写我自己的。无论如何,按照我的方式,我制作了一个重复的数组,然后从第一个数组中随机挑选卡片,然后将它们逐个放入第二个数组,然后删除随机选择的卡片。这是我的密码。一旦原始数组的长度达到26,函数将停止Javascript 由于未知原因,我的洗牌功能在26停止。我怎样才能让它洗牌?,javascript,arrays,random,shuffle,Javascript,Arrays,Random,Shuffle,好的,所以我用这个拔头发。我正在尝试做一个函数,它将洗牌一副虚拟的牌。我在网上看到了一些例子,但它们是用我不熟悉的语法编写的。我真的不明白发生了什么,所以我试着写我自己的。无论如何,按照我的方式,我制作了一个重复的数组,然后从第一个数组中随机挑选卡片,然后将它们逐个放入第二个数组,然后删除随机选择的卡片。这是我的密码。一旦原始数组的长度达到26,函数将停止 shuffleDeck: function (deck) { var newDeck = deck; for
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;
}
shuffleDeck:函数(组){
var newDeck=甲板;
for(i=0;i数组在JavaScript中通过引用传递,因此拼接正在从数组中移除,这就是它停止的原因
看
你能行
var newDeck = deck.slice(0);
对于副本,数组在JavaScript中通过引用传递,因此拼接正在从数组中移除,这就是它停止的原因
看
你能行
var newDeck = deck.slice(0);
对于副本Bam!我不知道它们是通过引用传递的!这就解决了问题。非常感谢!因此对象和数组是通过引用传递的。任何其他类型的变量都是通过引用传递的吗?Bam!我不知道它们是通过引用传递的!这就解决了问题。非常感谢!因此对象和数组是通过引用传递的。还有其他类型的吗变量的行为方式是这样的类型??