2016-05-17 6 views
0

次のコードでは、なぜ文字列として扱われますか?私はそれを数に戻すために1倍にする必要があります。アレイを想定なぜjavascriptは文字列として変数を扱うのですか?

getPositionInArray(value, array) { 
    console.log('array = ', array); 

    let i = 0; // why is i a string? 
    for (i in array) { 
     if (array[i].toLowerCase() === value) { 
     let positionOnUI = i * 1 + 1; // why can't I use i + 1? 
     return positionOnUI; 
     } 
    } 
    return null; 
    } 
+1

Iの代わりにI + 1 – galvan

+0

の1 +を試してみて、オペランドの順序@galvan変更されることはありません結果。いずれかが文字列の場合、 '+'は連結を実行します。 –

+0

なぜArray.indexOfでないのですか? – IMTheNachoMan

答えて

1

ちょうどループの通常を使用して、あなたは文句を言わない、この問題を持っている:

Working Example

function getPositionInArray (value, array) { 
    console.log('array = ', array); 
    for (let i = 0; i < array.length; i++) { 
    if (array[i].toLowerCase() === value) { 
     let positionOnUI = i // why can't I use i + 1? 
     return positionOnUI; 
    } 
    } 
    return null; 
} 
1

は...アレイである

問題がオブジェクトとして配列を扱い、文字列としてインデックスを返すfor(i in array)ある:for(;i<array.length;i++)

変化ループとそれが必要作業。

関連する問題