我一直很驚訝的是,在Javascript:爲什麼數組中的var返回一個字符串索引?
> vals = ["a", "b", "c"]
> for (v in vals) console.log(v + 1)
01
11
21
這是因爲:
> for (v in vals) console.log(typeof(v))
string
string
string
,所以我不得不做這樣的事情:
> for (v in vals) console.log(parseInt(v) + 1)
1
2
3
爲什麼這個發生?
我知道我可以做
> for (var v = 0; v < vals.length; v++) console.log(v + 1)
1
2
3
,但使用與Python我的腦海裏設置有for ... in ...
迭代
*「...但是與python一起使用我的思維是用'for ... in ...'iteration」設置的* Python在這裏是無關緊要的。這是JavaScript。所有對象屬性都是字符串。使用'for'循環。 – 2014-11-08 17:10:56
...... JS中有幾個原因讓我們用'for'代替數組中的'for-in'。然而,如果你真的想這樣做,你可以縮短它到'console.log(+ v + 1);' – 2014-11-08 17:14:42