Javascript .indexOf not working on an int array

gta0004 picture gta0004 · Jan 29, 2013 · Viewed 22.2k times · Source

Code:

function showlayer(name){
    var size = js_array.length
    var index = js_array.indexOf(name);
    var plusOne = js_array[index+1];
    document.write("" + name + "<br />" + js_array + "<br />" + index + "<br />" +
                   plusOne + "<br />" )
    ...
}

Output:

301
300,299,301,290,303,304,302,310,291,306,308,305,307,292,294,295,309
-1
300

All possible values of name are in the array, but for some reason indexOf() never finds them. Whats up?

Answer

Naftali aka Neal picture Naftali aka Neal · Jan 29, 2013

Try this instead:

...
var index = js_array.indexOf(parseInt(name, 10)); // so that it does not try to compare strings...
...