将数组中的值与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中具有相同索引的项值定义的每个数字范围进行比较。如果这是正确的,则以下内容适用 代码段中存在的问题有:
attackArray[2]=新数组(“1”、“3”、“2”、“3”、“2”、“3”、“4”);
正在第一行创建的attackArray中创建新的第三个元素。相反,我认为您希望填充attackArray的第二个元素,即attackArray[1]=新数组(“1”、“3”、“2”,“3”、“2”、“3”、“4”);
或者您可以使用不同的数组语法,如下所示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中相同索引的项目进行正确比较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个。是否改为循环各个数组中的元素?您的问题不清楚