我一直很惊讶的是,在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