Просто: indexOf()
не работает таким образом. Это может сработать, если вы сделали что-то вроде этого:
var x = [];
// do something
z = [a,b];
x.push(z);
x.indexOf(z);
Но тогда у тебя уже был бы z.b? Поэтому, если вы должны игнорировать советы всех, кто считает, что использование объекта (или словаря) на самом деле проще, вам придется либо использовать Ates Goral подход , либо искать Индекс самостоятельно:
Array.prototype.indexOf0 =
function(a){for(i=0;i<this.length;i++)if(a==this[i][0])return i;return null;};
var x = [];
// do something
x.push([a,b]);
x.indexOf0(a); //=> 0