2016-09-22 8 views
2

このコードが数字を生成しない理由はわかりません。誰も説明していただけますか?JS番号へのマップ

a = '1 3 2 6 1 2'.split(' '); 
a = a.map(Number); 

for (item in a){ 
    console.log(typeof(item)); 
} 

Chromeの出力は6文字です。あなたが期待しているように見えるが、代わりにあなたにfor..inループでインデックスに反復されているよう

+6

'item'は、_indexes_ではありません値。あなたはたぶん 'for(item of)'を意味していました。 – Xufox

+0

スポットがあります。ありがとう。私はあなたに解決策として回答しますが、唯一のコメントです... – Robin

+0

あなたの質問に答えるのが正しいかどうかは分かりません。単純なタイプミス(または「精神的なタイプミス」)であるという話題からほとんど外れています。 'item'を直接実行して値を反復することを確認し、配列全体を' a'で記録します(文字列と数字の色を区別する必要があります)。 'for-in'ループがドキュメントを介して値やインデックスを繰り返し処理する場合です。 – Xufox

答えて

0
a = '1 3 2 6 1 2'.split(' '); 
a = a.map(Number); 

console.log(a); 
+0

あなたの場合はオブジェクトであるため、typeof item(文字列)を使用しようとしていました。 – jsquerylover

0

あなたはaの内容を反復処理されていません。

for..inドキュメントhereを参照してください。面白いのは、配列に関するfor..inの使い方です(そして、このような場合にどうしたらいいのでしょうか)。

私が正しく理解していれば、これは私はあなたが期待している結果を生むと考えているものです:

同様
for (item in a) { 
    console.log(typeof(a[item])); 
} 

、要素にアクセスするために直接

関連する問題