索引返回"-1"何时应返回"4"


var odd = [1, 3, 5, 7, 9];
function testFunction() {
    numbers = document.getElementById("inputfield").value;
    alert(odd.indexOf(numbers[0]));
}

出于某种原因,它会提醒"-1",即使我先拆分"数字"以将其转换为数组。

我什至尝试了index=number[0];然后alert(odd.indexOf(index));但它仍然不起作用

这是一个演示 http://jsfiddle.net/y0ruba/NUzAD/

那是因为number[0] undefined

var number = 1;
var array = [ "a", "b" ]
number[0]; // undefined
array.indexOf(undefined); // -1

如果将alert行更改为:

alert(odd.indexOf(parseInt(("" + numbers)[0], 10)));

它应该有效。首先将numbers转换为字符串,然后获取第 0 位数字,然后将其转换回数字。在JSFiddle中,这给了我4<</p>

div class="one_answers">

使用parseInt

numbers[0]将返回一个字符串值。 由于odd是数字数组,它找不到其索引。因此,使用 parseIntnumbers[0]转换为整数

jsFiddle 演示

numbers = document.getElementById("inputfield").value;
var x = parseInt(numbers[0]);
alert(odd.indexOf(x));

number[0]是一个string。您必须在使用indexOf之前强制转换它,以便它可以匹配数字。

var odd = [1, 3, 5, 7, 9];
alert(odd.indexOf(+numbers[0]));

工作演示

数字没有索引。你能做的最好的事情就是parseInt((99936).toString()[0]),这在您的情况下是9

最新更新