【发布时间】:2016-07-22 14:58:48
【问题描述】:
例如
var a = [1, 2, 3];
for (var i in a) {
console.log(typeof i);
}
输出
string
string
string
我是一名 Python 程序员,我发现它非常不直观。为什么不将元素评估为数字?
【问题讨论】:
-
for in将遍历似乎已转换为字符串的键。Object.keys(a)[0]将返回"0" -
控制台日志
i你会意识到这不是元素。这是索引。 -
这样做:
var a = [1, 2, 3]; for (var i in a) {console.log(typeof a[i]);},你会看到数字。 -
我明白了。
var a = [5, 6, 7]; for (var i in a) {console.log(i);}仍然输出0 1 2,它们是索引,而不是元素。 -
请参阅this question and its answers,了解在 JavaScript 中循环遍历数组的方式。
for-in通常不是正确的(它可以是稀疏数组)。
标签: javascript