Javascript $.inArray为什么/何时返回-1?

Javascript $.inArray为什么/何时返回-1?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我想知道为什么/何时在JavaScript或jQuery中分别使用-1 我正在使用以下代码段: if ($.inArray('false', answers) > -1) { window.console.log('you Lose!'); } 干杯 Chris因为索引以0开头。0-index var arr = ['a', 'b', 'c']; alert( arr[0] ) // a; 因此,在检查数组$.inArray和[].indexOf中某个元素的索引时,如果该元素不存

我想知道为什么/何时在JavaScript或jQuery中分别使用-1

我正在使用以下代码段:

if ($.inArray('false', answers) > -1) {
  window.console.log('you Lose!');
}
干杯


Chris

因为索引以0开头。0-index

var arr = ['a', 'b', 'c'];

alert( arr[0] ) // a;
因此,在检查数组$.inArray和[].indexOf中某个元素的索引时,如果该元素不存在,则返回0是错误的:

var arr = ['a', 'b', 'c'];

alert( arr.indexOf('a') ); // 0
alert( arr.indexOf('b') ); // 1
alert( arr.indexOf('c') ); // 1
alert( arr.indexOf('d') ); // -1

我想说jQuery在这里有一个设计缺陷,我宁愿认为jQuery.inArray会返回布尔值true/false。

,因为索引是以0开头的。0-index

var arr = ['a', 'b', 'c'];

alert( arr[0] ) // a;
因此,在检查数组$.inArray和[].indexOf中某个元素的索引时,如果该元素不存在,则返回0是错误的:

var arr = ['a', 'b', 'c'];

alert( arr.indexOf('a') ); // 0
alert( arr.indexOf('b') ); // 1
alert( arr.indexOf('c') ); // 1
alert( arr.indexOf('d') ); // -1
我想说jQuery在这里有一个设计缺陷,我宁愿认为jQuery.inArray会返回布尔值true/false。

在这种情况下,如果要查找的表达式不在要查找的数组中,则返回-1

而根据,$.inArray返回元素的索引(如果找到了该元素),则不可能使用-1的索引:这是因为索引以0作为尽可能低的值开始

因此-1仅表示无效的索引位置,即未找到

因此,在您的代码段中,>-1的测试意味着:检查是否找到任何有效索引,或者换句话说,检查给定值是否在数组中

文档中甚至提到了这一点:

因为JavaScript将0松散地等同于false,即0==false,但0!==false,如果要检查数组中是否存在值,则需要检查值是否不等于或大于-1

希望这有帮助:-

在本例中,如果要查找的表达式不在要查找的数组中,则返回-1

而根据,$.inArray返回元素的索引(如果找到了该元素),则不可能使用-1的索引:这是因为索引以0作为尽可能低的值开始

因此-1仅表示无效的索引位置,即未找到

因此,在您的代码段中,>-1的测试意味着:检查是否找到任何有效索引,或者换句话说,检查给定值是否在数组中

文档中甚至提到了这一点:

因为JavaScript将0松散地等同于false,即0==false,但0!==false,如果要检查数组中是否存在值,则需要检查值是否不等于或大于-1


希望这有帮助:-

可能是因为数组索引在javascript中从0开始。你读过文档吗?可能是因为数组索引在javascript中从0开始。你读过文档吗?PS:如果有帮助,如果你能接受这个答案就好了:-PS:如果有帮助,如果你能接受这个答案就好了:-