0
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/

4

4 に答える 4

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に文字列にキャストし、次に0th 桁を取得してから、数値にキャストし直します。JSFiddleでは、これは私に与えます4

于 2013-09-25T15:42:31.863 に答える
2

number[0]ですstringindexOf数字と一致するように、使用する前にキャストする必要があります。

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

ワーキングデモ

于 2013-09-25T15:42:36.017 に答える
2

使用するparseInt

numbers[0]文字列値を返します。はodd数値の配列であるため、そのインデックスを見つけることができません。numbers[0]したがって、を使用して整数に変換しますparseInt

jsFiddle デモ

numbers = document.getElementById("inputfield").value;
var x = parseInt(numbers[0]);
alert(odd.indexOf(x));
于 2013-09-25T15:45:35.100 に答える
0

数値にはインデックスがありません。あなたができる最善のことはparseInt((99936).toString()[0])9あなたの場合です。

于 2013-09-25T15:43:35.050 に答える