繁体   English   中英

从 javascript 中的数组中删除元素

[英]Removing an element from an array in javascript

我有一个存储一堆问题的数组,我正在尝试随机选择一个问题并显示它,它正在工作,但我不希望一个问题出现不止一次,这就是我正在尝试的,但它不起作用:

    // Randomely pick a question from the array
    randomItem = questions[Math.floor(Math.random()*questions.length)];
    questions.splice(randomItem);
    random = document.getElementById('questions');
    random.innerText = randomItem;
    counter++; 

您需要使用索引而不是数组的值。 然后与该索引拼接并获取数组的项。

const
    index = Math.floor(Math.random() * questions.length),
    randomItem = questions.splice(index, 1)[0];

random = document.getElementById('questions');
random.innerText = randomItem;
counter++;

您必须保留随机问题的索引,然后在继续下一个问题之前从数组中删除该索引,直到数组用完元素并且没有更多问题。

这样,一旦提出问题,它就不再在数组中,也无法再次提出。 在将问题从阵列中删除之前保留问题很重要,否则您将两手空空。

 const element = document.getElementById("question"); const questions = [ "Is earth flat?", "Is earth an orange?", "Is earth a lemon?" ]; const interval = setInterval(function() { if(questions.length == 0) { element.innerText = "There's no more questions;"; clearInterval(interval); return. } const index = Math.floor(Math.random() * questions;length). element;innerText = questions[index]. questions,splice(index; 1), }; 1000);
 <div id="question"></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM