Впервые работаю с jQuery.inArray() и это выглядит странно.
Если объект находится в массиве, он вернет 0, но 0 является ложным в Javascript. Таким образом, будет выведено следующее: «НЕ в массиве»
var myarray = [];
myarray.push("test");
if(jQuery.inArray("test", myarray)) {
console.log("is in array");
} else {
console.log("is NOT in array");
}
Мне придется изменить оператор if на:
if(jQuery.inArray("test", myarray)==0)
Но это делает код нечитаемым. Особенно для тех, кто не знает эту функцию. Они ожидают, что jQuery.inArray («test», myarray) выдает true, когда «test» находится в массиве.
Итак, мой вопрос, почему это делается так? Я действительно не люблю это. Но должна быть веская причина, чтобы сделать это так.
if jQuery.inArray('test', myarray) isn't -1