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));
,但它仍然无效
答案 0 :(得分:3)
那是因为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
答案 1 :(得分:2)
number[0]
是string
。您必须在使用indexOf
之前将其强制转换,以便与该号码匹配。
var odd = [1, 3, 5, 7, 9];
alert(odd.indexOf(+numbers[0]));
答案 2 :(得分:2)
使用parseInt
numbers[0]
将返回一个字符串值。因为odd
是数字数组,
它无法找到它的索引。因此,使用numbers[0]
parseInt
转换为整数
<强> jsFiddle Demo 强>
numbers = document.getElementById("inputfield").value;
var x = parseInt(numbers[0]);
alert(odd.indexOf(x));
答案 3 :(得分:0)
数字没有索引。您可以做的最好的是parseInt((99936).toString()[0])
,在您的情况下为9
。