更改全局变量(数组)的 JavaScript 函数

Javascript function changing global variable (array)

本文关键字:JavaScript 函数 数组 全局变量      更新时间:2023-09-26

我正在尝试制作Yahtzee游戏。我有一个功能来检查掷出的骰子是否是小直道。

var sortedDice = rollDice().sort(); // rollDice() generates an array with 5 random numbers

我判断是否有小直道的函数:

function isSmStraight(checkSmStraight){
    var smStraight = false;
    var i = 1;
    var j = 0;
    //will remove a die if there are duplicates
    while(i < checkSmStraight.length){
        if (checkSmStraight[i] == checkSmStraight[j]){
            i++;
        } else {
            j++;
            checkSmStraight[j] = checkSmStraight[i];
            i++;
        }//end if else
    }//end while loop that moves duplicates to last index of array
    checkSmStraight.pop();//removes last index of array
    if (isLgStraight(checkSmStraight) == true){
        smStraight = true;
    } else if (checkSmStraight.length == 4 && checkSmStraight[checkSmStraight.length-1] - checkSmStraight[0] == 3){
        smStraight = true;
    }//end if else if
    return smStraight;
}//end function isSmStraight()

我已经将sortedDice复制到另一个数组fourDice,我可以用来调用isSmStraight()。我只希望这个函数使用四索引数组,但它总是弄乱排序的骰子,所以程序的其余部分使用四骰子数组。(这不是整个程序,只是我认为相关的部分。另外,程序已完成,我只是想先正确获取评分功能)。

数组

默认在JavaScript中传递引用。所以如果你只是在做类似的事情 var fourDice = sortedDice然后编辑四个骰子,排序的骰子也会被编辑还请在问题中输入您要将排序骰子复制到四骰子的代码。