Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中从数组中选择并删除随机单词_Javascript_Arrays_Random - Fatal编程技术网

在Javascript中从数组中选择并删除随机单词

在Javascript中从数组中选择并删除随机单词,javascript,arrays,random,Javascript,Arrays,Random,我正在尝试用Javascript重新制作我用Python制作的文字游戏。我在做一些基本的事情上有困难 脚本应该加载一个单词列表,当您单击按钮时,它应该显示列表中的一个随机单词。我尝试了几种方法,但当再次单击按钮时,索引号不会显示出来,也不会刷新 所以我在这个阶段的问题是:如何通过单击选择一个随机数组项,然后将其删除,这样当您再次单击时它就不会再次出现。我确实想增加一个显示单词的时间限制和一个TTS,但这将在以后进行 <html> <head> <title&

我正在尝试用Javascript重新制作我用Python制作的文字游戏。我在做一些基本的事情上有困难

脚本应该加载一个单词列表,当您单击按钮时,它应该显示列表中的一个随机单词。我尝试了几种方法,但当再次单击按钮时,索引号不会显示出来,也不会刷新

所以我在这个阶段的问题是:如何通过单击选择一个随机数组项,然后将其删除,这样当您再次单击时它就不会再次出现。我确实想增加一个显示单词的时间限制和一个TTS,但这将在以后进行

<html>
<head>
    <title>Aliyah's dictee spel</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div id="header">
    <h1>Hej! Velkommen til Aliyahs diktee!</h1>
    </div>
    <div id="Random_word">
        <h2 id="Empty">Click new word to start</h2>
        <button id="refresh_word">new word</button>

    </div>
    <input type="text" id="input1" />
    <input type="submit" name="ok" value="ok"/>
    <script>
        
    var words = ["test1", "test2", "test3"];
    var wordsCorrect = 0;
    var wordsWrong = 0;

    newWord(words)
    {
        var random = Math.floor(Math.random() * words.length);
        document.getElementById("Empty").innerHTML = random;
    };
    document.getElementById("refresh_word").addEventListener("click", newWord());

    

    </script>
</body>
</html>

阿莉亚的口述
嘿!直到你被命令!
单击“新单词”开始
新词
var words=[“test1”、“test2”、“test3”];
var-wordscorect=0;
var-wordsWrong=0;
新词
{
var random=Math.floor(Math.random()*words.length);
document.getElementById(“空”).innerHTML=random;
};
document.getElementById(“刷新word”).addEventListener(“单击”,newWord());
更换:

document.getElementById(“刷新word”).addEventListener(“单击”,newWord());
与:

document.getElementById(“刷新单词”).addEventListener(“单击”,()=>newWord(单词));
您还缺少
newWord
声明前面的
函数
关键字,以及
单词[random]
而不是作为索引的
random

var words=[“test1”、“test2”、“test3”];
var-wordscorect=0;
var-wordsWrong=0;
函数新词
{
var random=Math.floor(Math.random()*words.length);
document.getElementById(“空”).innerHTML=words[random];
字.拼接(随机,1);
};
document.getElementById(“刷新单词”).addEventListener(“单击”,()=>newWord(单词))

嘿!直到你被命令!
单击“新单词”开始
新词

()
函数引用后面总是在此时此地调用函数。它甚至应该是
()=>newWord(words)
。事件不包含单词,因此应该通过调用函数来传递。是的,非常感谢您指出,然后添加
单词。在设置DOM后,拼接(随机,1)
,以完成“删除它之后,当您再次单击时,它不会再次出现”的问题。然后,您“只”需要处理数组为空时的情况。或者只需删除
words
参数并使用全局变量。考虑到OP可能还需要正确/错误的计数,并且这些是全局的,因此似乎不值得只传递
单词
谢谢大家!我是一个彻头彻尾的noob,我设法用Python制作了一个很好的工作程序,我只是不懂Javascript,但这对我帮助很大!