【问题标题】:I need help looping the results of my function through an array我需要帮助通过数组循环我的函数的结果
【发布时间】:2021-10-24 01:53:28
【问题描述】:

我需要帮助使用我创建的函数的结果循环遍历数组。

函数掷2个骰子,输出2个骰子数字1-6,然后表示掷出的总和 我需要帮助在每次滚动后跟踪结果

Null 表示 0 和 1 不能是掷 2 次骰子的结果!

let results = [null, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

function rollDice(){
    let dice0 = document.getElementById("dice0");
    let dice1 = document.getElementById("dice1");
    let result=document.getElementById("result");
    let d0= Math.floor(Math.random()*6)+1;
    let d1= Math.floor(Math.random()*6)+1;
    let total = d0+d1;
    dice0.innerHTML = d0;
    dice1.innerHTML = d1;
    result.innerHTML = "You rolled "+total+"."

目标:在 HTML 页面上显示结果 2-12 以及每个数字滚动了多少次! 示例 预期结果:
你投了 2; 4次
你已经掷出 3; 9次
你已经掷出 4; 7次
...等等等等

这里是 HTML 给那些想看的人:

<body>
    <div id="dice0" class="dice">0</div>
    <div id="dice1" class="dice">0</div>
    <br>
    <button onclick ="rollDice()">Roll a Pair of Dice</button>
   
    <div id="result"></div>
    <div id="list"></div>
    <script src="code.js"></script>
  </body>
</html>

let results = [null, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

function rollDice() {
  let dice0 = document.getElementById("dice0");
  let dice1 = document.getElementById("dice1");
  let result = document.getElementById("result");
  let d0 = Math.floor(Math.random() * 6) + 1;
  let d1 = Math.floor(Math.random() * 6) + 1;
  let total = d0 + d1;
  dice0.innerHTML = d0;
  dice1.innerHTML = d1;
  result.innerHTML = "You rolled " + total + "."
}
<div id="dice0" class="dice">0</div>
<div id="dice1" class="dice">0</div>
<br>
<button onclick="rollDice()">Roll a Pair of Dice</button>

<div id="result"></div>
<div id="list"></div>

【问题讨论】:

  • 不清楚您遇到了什么具体问题。
  • 嗯,我一直在努力将我的结果添加到数组中,然后计算我得到相同结果的次数。

标签: javascript arrays dom


【解决方案1】:

请使用此代码。

let results = [null, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

function rollDice(){
    let dice0 = document.getElementById("dice0");
    let dice1 = document.getElementById("dice1");
    let result = document.getElementById("result");
    let list = document.getElementById("list");
    let d0= Math.floor(Math.random()*6)+1;
    let d1= Math.floor(Math.random()*6)+1;
    let total = d0+d1;
    dice0.innerHTML = d0;
    dice1.innerHTML = d1;
    result.innerHTML = "You rolled "+total+"."
    results[total]++;
    list.innerHTML = results.map((val, index) => `You have rolled ${index}; ${val} times`).join('<br/>');
}

当用户点击按钮时,滚动时间保存在结果变量中。 然后我们使用 map 方法从“results”变量中获取每个点的列表,并将其显示在“list”div中。

【讨论】:

  • 这是一个比我能够理解的更有说服力的答案!如果你想在数组中保留 2 个空值,你会有什么不同的做法?
  • 从“results[total-2]++”更改为“results[total]++”。
  • 你的回答应该包括你的解决方案的一些解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多