Javascript .indexOf 不适用于 int 数组

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14592115/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 17:19:11  来源:igfitidea点击:

Javascript .indexOf not working on an int array

javascriptindexof

提问by gta0004

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?

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

回答by Naftali aka Neal

Try this instead:

试试这个:

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