Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由于未知原因,我的洗牌功能在26停止。我怎样才能让它洗牌?_Javascript_Arrays_Random_Shuffle - Fatal编程技术网

Javascript 由于未知原因,我的洗牌功能在26停止。我怎样才能让它洗牌?

Javascript 由于未知原因,我的洗牌功能在26停止。我怎样才能让它洗牌?,javascript,arrays,random,shuffle,Javascript,Arrays,Random,Shuffle,好的,所以我用这个拔头发。我正在尝试做一个函数,它将洗牌一副虚拟的牌。我在网上看到了一些例子,但它们是用我不熟悉的语法编写的。我真的不明白发生了什么,所以我试着写我自己的。无论如何,按照我的方式,我制作了一个重复的数组,然后从第一个数组中随机挑选卡片,然后将它们逐个放入第二个数组,然后删除随机选择的卡片。这是我的密码。一旦原始数组的长度达到26,函数将停止 shuffleDeck: function (deck) { var newDeck = deck; for

好的,所以我用这个拔头发。我正在尝试做一个函数,它将洗牌一副虚拟的牌。我在网上看到了一些例子,但它们是用我不熟悉的语法编写的。我真的不明白发生了什么,所以我试着写我自己的。无论如何,按照我的方式,我制作了一个重复的数组,然后从第一个数组中随机挑选卡片,然后将它们逐个放入第二个数组,然后删除随机选择的卡片。这是我的密码。一旦原始数组的长度达到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;
    }
shuffleDeck:函数(组){
var newDeck=甲板;

for(i=0;i数组在JavaScript中通过引用传递,因此拼接正在从数组中移除,这就是它停止的原因

你能行

var newDeck = deck.slice(0);

对于副本,

数组在JavaScript中通过引用传递,因此拼接正在从数组中移除,这就是它停止的原因

你能行

var newDeck = deck.slice(0);

对于副本

Bam!我不知道它们是通过引用传递的!这就解决了问题。非常感谢!因此对象和数组是通过引用传递的。任何其他类型的变量都是通过引用传递的吗?Bam!我不知道它们是通过引用传递的!这就解决了问题。非常感谢!因此对象和数组是通过引用传递的。还有其他类型的吗变量的行为方式是这样的类型??