2016-09-22 13 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個字符串。

+6

'item'是_indexes_,而不是值。你可能的意思是「爲(a)項目''。 – Xufox

+0

現貨。謝謝。我將標誌着你回答的解決方案,但它只是一個評論... – Robin

+0

不能確定它是否是正確的回答你的問題......它是作爲一個簡單的拼寫錯誤(或「精神」錯字)_almost_題外話。在詢問你的問題之前,你應該做一些事情:直接記錄'item'以驗證你是否迭代了這些值,記錄整個數組'a'(字符串和數字應該有一個區別),驗證如果'for-in'循環通過文檔迭代值或索引。 – Xufox

回答

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

console.log(a); 
+0

你試圖使用typeof項目,這是字符串,因爲你的情況是一個對象。 – jsquerylover

0

你似乎在期待,但在你的for..in循環的指標,而不是迭代你是不是過的a內容迭代。

您可以參考的for..in文檔here。有趣的地方是他們在數組中使用for..in的地方(以及你可能不應該在這樣的情況下)。

如果我理解正確的話,這是什麼,我相信會產生的結果你期待:

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

同樣,直接訪問的元素