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>
使用parseInt
numbers[0]
将返回一个字符串值。 由于odd
是数字数组,它找不到其索引。因此,使用 parseInt
将numbers[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
。