从数组中选择五个随机项

时间:2019-06-20 11:13:13

标签: javascript

我有一个包含9个项目的数组,我只想随机选择5个 我的阵列有一个测验问题,我希望这些问题有所不同

我已经尝试过,但是我的代码至少给出了5个问题,但刷新页面时有时会出现5 7或8。我认为我的代码最少要给出5个问题,最多要给出8个问题

export let questions = []

if (localStorage.questions){
    questions = JSON.parse(localStorage.questions)
}

else {

    const question1 = new Question (
    "1",
    "Qual é a capital de Portugal?",
    ["Porto","Lisboa","Braga","Guimarães"],
    "Lisboa",
    "10",
    "",
    "1"
    )

    const question2 = new Question(
    "2",
    "Que cidade é conhecida como cidade invicta?",
    ["Viseu","Évora","Santarém","Porto"],
    "Porto",
    "10",
    "",
    "1"
    )

    const question3 = new Question(
    "3",
    "Que cidade é conhecida como cidade berço de Portugal?",
    ["Braga","Leiria","Guimarães","Bragança"],
    "Guimarães",
    "10",
    "",
    "1"
    )

    const question31 = new Question(
    "31",
    "Qual é a capital do Minho?",
    ["Porto","Guimarães","Braga","Vila-Real"],
    "Braga",
    "10",
    "",
    "1"
    )

    const question32 = new Question(
    "32",
    "Quantos habitantes tem a cidade do Porto?",
    ["214349","200350","210323","215000"],
    "214349",
    "10",
    "",
    "1"
    )

    const question33 = new Question(
    "33",
    "Em que cidade nasceu o primeiro rei de Portugal?",
    ["Porto","Lisboa","Guimarães","Bragança"],
    "Guimarães",
    "10",
    "",
    "1"
    )


    const question34 = new Question(
     "34",
    "Os barcos do rabelo são uma caracteristica de que cidade?",
    ["Porto","Lisboa","Guimarães","Bragança"],
    "Porto",
    "10",
    "",
    "1"
    )

    const question35 = new Question(
    "35",
    "Qual destas cidades fica no Algarve?",
    ["Porto","Faro","Guimarães","Bragança"],
    "Faro",
    "10",
    "",
    "1"
    )

    const question36 = new Question(
    "36",
    "Qual destas cidades fica no centro de Portugal?",
    ["Porto","Faro","Aveiro","Bragança"],
    "Aveiro",
    "10",
    "",
    "1"
    )


    questions.push(question1,question2,question3,question31,question32,question33,question34,question35,question36)
    localStorage.setItem("questions", JSON.stringify(questions))

}

 export function choose() {  // funcao para randomizar as perguntas no quiz

    let num = Math.floor(Math.random() * questions.length - 6);
    let name = questions.splice(num,4);
    questions.push(name)
 }

然后我以这种方式提出问题


renderQuestions();


function renderQuestions() {
    choose();

    let result1 = ""

    for (const question of questions) {

        if(question.level === "1")  {

   console.log("level1")
        // gerar estrutura


        result1 += `
    <div>
    <p id="question">${question.description}</p>
    <input type="radio" id="raBtn" value="${question.options[0]}" name="${question.id}">${question.options[0]}<br>     
    <input type="radio" id="raBtn" value="${question.options[1]}" name="${question.id}" >${question.options[1]}<br>
    <input type="radio" id="raBtn" value="${question.options[2]}" name="${question.id}">${question.options[2]}<br>
    <input type="radio" id="raBtn" value="${question.options[3]}" name="${question.id}">${question.options[3]}<br>
    <font size="1">Pontos : ${question.points}</font>

    </div>
    `
        // name=question.id diferencia as questoes pelo id para que quando selecionarmos o radio button nao tirar a opçao nas outras questoes

        myQuestions.innerHTML = result1;
        }



}


}

1 个答案:

答案 0 :(得分:0)

您的Ansi Esc[ sequence (CSI) Foreground Background No Color normal bright normal bright 0 black 30 90 40 100 1 red 31 91 41 101 2 green 32 92 42 102 3 yellow 33 93 43 103 4 blue 34 94 44 104 5 violet 35 95 45 105 6 turqoise 36 96 46 106 7 grey 37 97 47 107 函数有点混乱。检查一下,发表评论:

choose()