[英]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.