【问题标题】:Assigning random value from array to a button and using this value将数组中的随机值分配给按钮并使用此值
【发布时间】:2019-04-09 01:20:50
【问题描述】:

我有一组设置了 id、键、值等的按钮,

还有一个具有不同值的数组。

我希望用户能够单击任何按钮并从数组中随机选择,这将在从屏幕上删除与从数组中随机选取的值匹配的图像时。这很令人沮丧,因为我已经尝试了很多年!帮助!

function getrandom(){
    var random = amounts[Math.floor(Math.random() * amounts.length)];
    document.getElementById("task").innerHTML= "Your selected button revealed " + random;
    for( var i = 0; i < amounts.length; i++){ 
        if ( amounts[i] === random) {
        arr.splice(i, 1); 
    }
}
}

【问题讨论】:

  • 您想要做的是将数组中的 rendom 值分配给按钮的值,当按下按钮时,读取该值并执行您希望执行的任务 - 希望对您有所帮助跨度>
  • 您应该添加您的代码,并描述您迄今为止尝试过的内容以及您遇到的错误/问题。这将使人们更容易为您提供建议。
  • @jaromanda X 如何将数组中的随机值分配给按钮?
  • 通过从数组中获取一个随机值,并将其分配给按钮......您确实意识到在您发布代码之前,您至少不会从我这里得到一行代码: p 你说你已经“尝试了很多年”......这意味着你已经写了一些东西......你实际上会通过展示你的代码来学习更多(不管它有多糟糕),因为这样你就可以被告知你去了哪里错了——这比有人为你写所有代码要好得多:p
  • 是的,我明白了。我在床上,我的代码在我的笔记本电脑上。如果你明天能帮忙,将不胜感激

标签: javascript arrays sorting button


【解决方案1】:

您的代码不需要 for 循环。试试这个:

function getrandom() {
    var randomIndex = Math.floor(Math.random() * amounts.length);
    var random = amounts[randomIndex];
    document.getElementById("task").innerHTML= "Your selected button revealed " + random;
    amounts.splice(randomIndex, 1);
}

您的问题的根源可能与您没有“中断”这一事实有关;在找到值后退出循环,因此循环继续运行,检查所有其他值。但是因为您已经从数组中删除了一个项目,所以它可能会越界。

如果这仍然不起作用,您可能会遇到空指针错误:

document.getElementById("task").innerHTML= "Your selected button revealed " + random;

检查以确保“任务”元素确实存在于 HTML 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多