Javascript .indexOf无法处理int数组

gta*_*004 9 javascript indexof

码:

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 />" )
    ...
}
Run Code Online (Sandbox Code Playgroud)

输出:

301
300,299,301,290,303,304,302,310,291,306,308,305,307,292,294,295,309
-1
300
Run Code Online (Sandbox Code Playgroud)

name的所有可能值都在数组中,但由于某种原因,indexOf()永远不会找到它们.这是怎么回事?

Nea*_*eal 28

试试这个:

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

  • 或者,简单地将键转换为 Int:`array.indexOf(+name)`。 (2认同)