骰子滚成阵列

时间:2013-12-10 21:49:49

标签: javascript arrays dice

我想知道为什么我收到消息:'未捕获的ReferenceError:d1未定义'在控制台

我想将骰子卷添加到数组中。

这是我的代码:

<html>
<head>
    <script>
  var diceRolls = [];
  diceRolls.push(d1);

  if (diceRolls[diceRolls.length - 1] === d1) {
      console.log("Je hebt 5 punten gewonnen!");
  }     

function rollDice() {
           var die1 = document.getElementById("die1");
           var status = document.getElementById("status");               
           var d1 = Math.floor(Math.random()*6) +1;
           console.log("You rolled "+d1+".");


  }



  </script>
</head>
<body>
    <div id="die1" class="dice">0</div>

    <button onclick="rollDice()"> Roll the dice </button>
    <h2 id="status" style="clear:left":> </h2>
</body>

2 个答案:

答案 0 :(得分:2)

当您尚未初始化d1时,脚本的第二行是尝试将diceRolls推送到d1。您必须在脚本的其余部分上方声明rollDice(),然后调用它以将值推送到diceRolls

我想你可能想尝试这些方面的东西吗?

var diceRolls = [];

function rollDice() {
  var die1 = document.getElementById("die1");
  var status = document.getElementById("status");               
  var d1 = Math.floor(Math.random()*6) +1;
  console.log("You rolled "+d1+".");
  diceRolls.push(d1);
}

if (diceRolls[diceRolls.length - 1] === d1) {
    console.log("Je hebt 5 punten gewonnen!");
}     

答案 1 :(得分:1)

diceRolls.push(d1);

在浏览器到达此行时,尚未设置d1。我想如果你把它扔进rollDice函数,你会得到你想要的东西。换句话说:

function rollDice() {
       var die1 = document.getElementById("die1");
       var status = document.getElementById("status");               
       var d1 = Math.floor(Math.random()*6) +1;
       console.log("You rolled "+d1+".");
       diceRolls.push(d1);
 }

编辑:AVP击败了我大约30秒,他得到了我的投票。