简体   繁体   English

随机数组更新

[英]Random array update

I have an array in which two values are compared in a random order.我有一个数组,其中两个值以随机顺序进行比较。 How do i update the values?我如何更新值? Help, if not hard.帮助,如果不难。

 $(document).ready(function() { var myArray = [{ "q1": "a", "an": "a" }, { "q1": "b", "an": "b" }, { "q1": "c", "an": "c" }]; var rand = Math.floor(Math.random() * myArray.length); $("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>"); $("#btn").click(function() { var answer = $("#answer").val(); if (answer == myArray[rand].an) { $("#comment").html("<div>" + "OK!" + "</div>"); } else { $("#comment").html("<div>" + "NO!" + "</div>"); } $("#answer").val(''); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="wrap"> <div id="question"></div> <input id="answer" /> <div id="comment"></div> <button id="btn">Button</button> </div>

<div id="wrap">
    <div id="question"></div>
    <input id="answer" />
    <div id="comment"></div>
    <button id="btn">Button</button>
    <button id="next">Next</button>
  </div>

JS JS

$(document).ready(function() {
    var myArray = [{
      "q1": "a",
      "an": "a"
    }, {
      "q1": "b",
      "an": "b"
    }, {
      "q1": "c",
      "an": "c"
    }];
    var rand = Math.floor(Math.random() * myArray.length);
    $("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>");
    $("#btn").click(function() {
      var answer = $("#answer").val();
      if (answer == myArray[rand].an) {
        $("#comment").html("<div>" + "OK!" + "</div>");
      } else {
        $("#comment").html("<div>" + "NO!" + "</div>");
      }
      $("#answer").val('');
    });
  $("#next").click(function(){

   var newRand =rand;
   while(rand==newRand)
   {
     newRand = Math.floor(Math.random() * myArray.length);
   }
rand =newRand;
    $("#question").html("<div id='text'>" + myArray[newRand].q1 + "</div>");
  });
});

Here is the Fiddle https://jsfiddle.net/eax8cvwn/这是小提琴https://jsfiddle.net/eax8cvwn/

You can access the array values like this:您可以像这样访问数组值:

myArray[0].an = 'new value';

Where 0 is the "row" in your array.其中0是数组中的“行”。

You need to reset your random value after button click.单击按钮后,您需要重置随机值。 So put below line inside button click.所以把下面的线放在按钮点击内。

rand = Math.floor(Math.random() * myArray.length);
$("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>");

 $(document).ready(function() { var myArray = [{ "q1": "a", "an": "a" }, { "q1": "b", "an": "b" }, { "q1": "c", "an": "c" }, { "q1": "d", "an": "d" }, { "q1": "e", "an": "e" }]; var rand = Math.floor(Math.random() * myArray.length); $("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>"); $("#btn").click(function() { var answer = $("#answer").val(); if (answer == myArray[rand].an) { $("#comment").html("<div>" + "OK!" + "</div>"); } else { $("#comment").html("<div>" + "NO!" + "</div>"); } $("#answer").val(''); rand = Math.floor(Math.random() * myArray.length); $("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>"); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="wrap"> <div id="question"></div> <input id="answer" /> <div id="comment"></div> <button id="btn">Button</button> </div>

push the newly generated random number into a array and check if it exists using indexOf and generate new random number.将新生成的随机数推入数组并使用indexOf检查它是否存在并生成新的随机数。 and check if all questions answered using question's array length and random number array length and complete the quiz.并检查是否使用问题的数组长度和随机数数组长度回答了所有问题并完成测验。

Try like this像这样尝试

 $(document).ready(function() { var myArray = [{ "q1": "a", "an": "a" }, { "q1": "b", "an": "b" }, { "q1": "c", "an": "c" }]; var rand = Math.floor(Math.random() * myArray.length); $("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>"); var askedQtn = []; askedQtn.push(rand); $("#btn").click(function() { var answer = $("#answer").val(); if (answer == myArray[rand].an) { $("#comment").html("<div>" + "OK!" + "</div>"); } else { $("#comment").html("<div>" + "NO!" + "</div>"); } $("#answer").val(''); var newRand =rand; if(myArray.length <= askedQtn.length){ $("#wrap").html("<div id='text'>Questions Over</div>"); } else { while(askedQtn.indexOf(rand) >= 0) { rand = Math.floor(Math.random() * myArray.length); } askedQtn.push(rand); $("#question").html("<div id='text'>" + myArray[rand].q1 + "</div>"); } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="wrap"> <div id="question"></div> <input id="answer" /> <div id="comment"></div> <button id="btn">Button</button> </div>

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

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