0

我是编程新手,也是stackoverflow新手。我的问题array.push()JavaScript. 先看代码

var buttonColors = ["red", "blue", "green", "yellow"];
var gamePattern = [];
gamePattern = gamePattern.push(nextSequence());

function nextSequence(){
        var randomNumber = Math.floor( Math.random() * 4);
        var randomChosenColor = buttonColors[randomNumber];
        return randomChosenColor;
}

也请检查此图像... 这是 chrome 控制台输出

问题是randomNumber正在正确生成并且randomChosenColor也正确获取颜色,但它没有被推入第3gamePattern行的数组中。如果此方法有其他替代方法,也请帮助我。

4

2 回答 2

1

Push changes the original state of the array. So you don't need to re-initialize the array.

 var buttonColors = ["red", "blue", "green", "yellow"];
    let temp=[];
    temp.push(seq());
    console.log(temp);
    function seq(){
        var randomNumber = Math.floor( Math.random() * 4);
        var randomChosenColor = buttonColors[randomNumber];
        return randomChosenColor;
    }
于 2020-05-31T04:39:40.790 回答
0

push()改变原始数组(并返回新长度),因此您不需要为gamePattern. 尝试这样的事情:

var buttonColors = ["red", "blue", "green", "yellow"];
var gamePattern = [];
gamePattern.push(nextSequence());

function nextSequence(){
  var randomNumber = Math.floor(Math.random() * 4);
  var randomChosenColor = buttonColors[randomNumber];
  return randomChosenColor;
}
于 2020-05-31T04:36:42.933 回答