我通常使用 python 编写脚本/程序,但最近开始使用 JavaScript 进行编程,并且在使用数组时遇到了一些问题。
在 python 中,当我创建一个数组并使用 for x in y 时,我得到了这个:
myarray = [5,4,3,2,1]
for x in myarray:
print x
我得到了预期的输出:
5
4
3
..n
但我的问题是,当使用 Javascript 时,我得到了一个完全不同的(对我来说)意外的结果:
var world = [5,4,3,2,1]
for (var num in world) {
alert(num);
}
我得到了结果:
0
1
2
..n
我如何让 JavaScript 像 python 一样输出 num 作为数组中的值,为什么会这样?
最佳答案
JavaScript 和 Python 不同,您在它们之间以不同的方式做事。
在 JavaScript 中,你真的应该(几乎)总是迭代一个带有数字索引的数组:
for (var i = 0; i < array.length; ++i)
alert(array[i]);
JavaScript 中的“for ... in”结构为您提供对象的键,而不是值。在数组上使用它很棘手,因为它将数组作为一个对象来操作,对待它与任何其他类型的对象没有区别。因此,如果数组对象有额外的属性——这是完全“合法的”并且并不少见——除了“正常”数组内容的索引之外,你的循环还将选择这些属性。
关于数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330219/