使用for循环进行数组检查

时间:2015-10-12 12:01:39

标签: javascript html arrays loops for-loop

1.他们,我如何分开这些? 2.在这里接受im newb,但是我的头已经开了一段时间了,如何让这段代码在不写不停的情况下写出句子?

<html>
  <body>
    <script type="text/javascript">
      var x=[15,22,28,30,25,11,12,29,27,26];//right numbers
      var c=1;
      var e=0;
      var i=0;
      for (c=1;c<=10;c++) {
        var y=Number(prompt("enter number from 10 to 30",0));
        for(i=0;i<=9;i++) {
          if(y==x[i]) {//checking every number in array
            document.write("u right.<br>");
            e=e+1;
          }
          else {
            document.write("u wrong.<br>");//this writes every time it goes trough the loop,i tried breaking,but it just quits the loop on first number in array,i tried continue,no luck
          }
        }
      }
         if(e<5) {//amount of time you guessed right
          document.write("u lose ");
        }
        else {
          document.write("u win");
        }
    </script>
  </body>
</html>

2 个答案:

答案 0 :(得分:1)

<html>
        <body>
        <script type="text/javascript">
        var x=[15,22,28,30,25,11,12,29,27,26];//right numbers
        var c=1;
        var e=0;
        var i=0;
        for (c=1;c<=10;c++)
        {
        var y=Number(prompt("enter number from 10 to 30",0));
        var right = false;
        for(i=0;i<=9;i++)
          {
            if(y==x[i]) //checking every number in array
           {
             right = true;
           }
          }
          if (right)
           {
             e++;
             document.write("u right.<br>");
           }
           else {
                document.write("u wrong.<br>");
           }
         }
       if(e<5)//amount of time you guessed right
       {
       document.write("u lose ");
       }
      else
      {document.write("u win");}



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

您的代码可以在许多方面进行优化:

    <html>
  <body>
        <script type="text/javascript">
          var x=[15,22,28,30,25,11,12,29,27,26];//right numbers
          var c=1;
          var e=0;
          var c=0;
          while (c < 10) 
          {
            c++;
            var y=Number(prompt("enter number from 10 to 30",0));
            if (x.indexOf(y) != -1)
            {
              e++;
              document.write("u right.<br>");
            }
            else {
              document.write("u wrong.<br>");
            }
          }
          if(e<5)//amount of time you guessed right
          {
            document.write("u lose ");
          }
          else
          {
            document.write("u win");
          }
     </script>
   </body>
</html>

答案 1 :(得分:0)

使用数组的indexOf方法检查值是否在数组中可用。

如果值不可用,则返回-1否则返回该值的位置。

<html>
  <body>
    <script type="text/javascript">
      var x = [15,22,28,30,25,11,12,29,27,26];
      var e = 0;
      for (var c=1;c<=10;c++) {
        var y = Number(prompt("enter number from 10 to 30",0));        
        x.indexOf(y) > 0?(document.write("u right.<br>"),e++):document.write("u r wrong.<br>");
      }
      e<5?document.write("u lose "):document.write("u win");
    </script>
  </body>
</html>