将数组中的值与javascript中的数字进行比较

将数组中的值与javascript中的数字进行比较,javascript,arrays,Javascript,Arrays,我正在编写一个程序,确定一个数字是否在数组中的两个值之间 下面是我正在使用的数组的一个示例 var attackArray = new Array (2); attackArray[0] = new Array("0","1","2","2","2","3","4"); attackArray[1] = new Array("2","3","2","3","2","3","4"); function leveltest ( number) { var attack = attackAr

我正在编写一个程序,确定一个数字是否在数组中的两个值之间

下面是我正在使用的数组的一个示例

var attackArray = new Array (2);
attackArray[0] = new Array("0","1","2","2","2","3","4");
attackArray[1] = new Array("2","3","2","3","2","3","4");
function leveltest ( number)
{
    var attack = attackArray.length;


    for ( var count = 0 ; count < attack; count ++)
   {
      if ((number >= Number(attackArray [count][0])) && (number <= Number(attackArray [count][1])))
      {
        do something ;
      }
   }  

 }

我使用以下代码将数字与数组中的前两个值进行比较。然后我在数组中循环,直到找到符合要求的行。数字必须大于等于第一个数字和等于数字(attackArray[count][0])&(数字看起来attackArray中的第二个元素的索引错误

attackArray[2] = new Array("1","3","2","3","2","3","4");
attackArray.length==2
您的“计数”可以增加到1,attackArray[1]不是您定义的。

看起来attackArray中的第二个元素的索引错误

attackArray[2] = new Array("1","3","2","3","2","3","4");
attackArray.length==2
您的“计数”可以增加到1,attackArray[1]不是您定义的。

if中的第二个比较错误。在第二个循环中,它将是attackArray[1][1],您创建了attackArray[0]和attackArray[2]。

if中的第二个比较错误。在第二个循环中,它将是attackArray[1][1]您创建了一个attackArray[0]和attackArray[2]。

我相信您正在尝试将一个数字与attackArray的元素0和元素1中具有相同索引的项值定义的每个数字范围进行比较。如果这是正确的,则以下内容适用

代码段中存在的问题有:

  • 第3行的索引错误。您的第三行,
    attackArray[2]=新数组(“1”、“3”、“2”、“3”、“2”、“3”、“4”);
    正在第一行创建的attackArray中创建新的第三个元素。相反,我认为您希望填充attackArray的第二个元素,即
    attackArray[1]=新数组(“1”、“3”、“2”,“3”、“2”、“3”、“4”);
    或者您可以使用不同的数组语法,如下所示

  • 在函数中,您使用attackArray的长度
    var-attack=attackArray.length;
    ,来控制循环跟踪的
    。相反,您需要,
    var-attack=attackArray[0]。length;
    只要
    attackArray[0]
    attackArray[1]
    的长度是相同的。你可以这样想,你在数组的错误维度上得到了长度。你在数组或对象列表的“向下”得到了长度,而不是在数组的水平维度上得到了长度

  • 在函数中,您对如何循环数组感到困惑,您有这个
    attackArray[count][0]
    attackArray[count][1]
    向后。相反,它们应该是
    attackArray[0][count]
    attackArray[1][count]
    。这将允许您将数字与元素0中的每个项目以及元素1中相同索引的项目进行正确比较

  • 以下代码应该是一段简洁、正确的代码,以实现您的目标。您可以将其插入到jsfiddle.net中,它应该在Chrome中使用Javascript控制台来查看日志中的结果。如下所示:

    var attackArray = [];
    attackArray[0] = ["0","0","2","2","2","3","4"];
    attackArray[1] = ["1","3","2","3","2","3","4"];
    
    function leveltest (number){
      var attack = attackArray[0].length;
      for (var count = 0;count < attack;count ++){
        if ((number >= Number(attackArray [0][count])) &&
            (number <= Number(attackArray [1][count]))) {
          console.log(number + " matches at index " + count);
          }
        }  
    }
    leveltest(2);
    
    var attackArray=[];
    攻击数组[0]=[“0”、“0”、“2”、“2”、“2”、“3”、“4”];
    攻击数组[1]=[“1”、“3”、“2”、“3”、“2”、“3”、“4”];
    功能级别测试(编号){
    var-attack=attackArray[0]。长度;
    for(var count=0;count=number(attackArray[0][count]))&&
    
    (number我相信您正在尝试将一个数字与attackArray的元素0和元素1中具有相同索引的项值定义的每个数字范围进行比较。如果这是正确的,则以下内容适用

    代码段中存在的问题有:

  • 第3行的索引错误。您的第三行,
    attackArray[2]=新数组(“1”、“3”、“2”、“3”、“2”、“3”、“4”);
    正在第一行创建的attackArray中创建新的第三个元素。相反,我认为您希望填充attackArray的第二个元素,即
    attackArray[1]=新数组(“1”、“3”、“2”3”、“2”、“3”、“4”);
    或者您可以使用不同的数组语法,如下所示

  • 在函数中,您使用attackArray的长度
    var-attack=attackArray.length;
    ,来控制循环跟踪的
    。相反,您需要,
    var-attack=attackArray[0]。length;
    只要
    attackArray[0]
    attackArray[1]
    的长度是相同的。你可以这样想,你在数组的错误维度上得到了长度。你在数组或对象列表的“向下”得到了长度,而不是在数组的水平维度上得到了长度

  • 在函数中,您对如何循环数组感到困惑,您有这个
    attackArray[count][0]
    attackArray[count][1]
    向后。相反,它们应该是
    attackArray[0][count]
    attackArray[1][count]
    。这将允许您将数字与元素0中的每个项目以及元素1中相同索引的项目进行正确比较

  • 以下代码应该是一段简洁、正确的代码,以实现您的目标。您可以将其插入到jsfiddle.net中,它应该在Chrome中使用Javascript控制台来查看日志中的结果。如下所示:

    var attackArray = [];
    attackArray[0] = ["0","0","2","2","2","3","4"];
    attackArray[1] = ["1","3","2","3","2","3","4"];
    
    function leveltest (number){
      var attack = attackArray[0].length;
      for (var count = 0;count < attack;count ++){
        if ((number >= Number(attackArray [0][count])) &&
            (number <= Number(attackArray [1][count]))) {
          console.log(number + " matches at index " + count);
          }
        }  
    }
    leveltest(2);
    
    var attackArray=[];
    攻击数组[0]=[“0”、“0”、“2”、“2”、“2”、“3”、“4”];
    攻击数组[1]=[“1”、“3”、“2”、“3”、“2”、“3”、“4”];
    功能级别测试(编号){
    var-attack=attackArray[0]。长度;
    for(var count=0;count=number(attackArray[0][count]))&&
    
    (数字)您的问题不清楚。请举例说明预期的输入/输出是什么。此外,您缺少
    attackArray[1]
    ,并且在应该使用数字时使用了字符串。attackArray[2]应该是attackArray[1]?attack=attackArray.length;将始终返回2,因为其中只有2个。是否改为循环各个数组中的元素?您的问题不清楚