Javascript $.inArray为什么/何时返回-1?
我想知道为什么/何时在JavaScript或jQuery中分别使用-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中某个元素的索引时,如果该元素不存
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:如果有帮助,如果你能接受这个答案就好了:-