首页 > 关于js的for in的一个问题

关于js的for in的一个问题

var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x in mycars)
{
document.write(mycars[x] + "<br />")
}

为什么这里X的值默认就成了0,1,2啊


这就是for…in这个语法的作用…………

如果你一定要问为什么x的值成了0、1、2,这你得去问Brendan Eich


x 不是属性key么,你这里的mycars对象里的key不就是0,1,2?


for...in 语句

这个 for...in 语句循环一个指定的变量来循环一个对象所有可枚举的属性。JavaScript 会为每一个不同的属性执
行指定的语句。

 数组

虽然用for...in来迭代Array元素很诱人,但是它返回的除了数字索引外还有可能是你自定义的属性名字。因此还是用带有数字索引的传统的for 循环来迭代一个数组比较好,因为如果你想改变数组对象,比如添加属性或者方法,for...in 语句迭代的是 自定义的属性而不是数组的元素。

https://developer.mozilla.org...语句


我想题主应该使用:for of
https://developer.mozilla.org...

var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x of mycars)
{
    // x 就是 "Saab"、"Volvo"、"BMW"了
}

遍历数组默认下标是 0 1 2 。。。 遍历对象默认是key


for in 循环的是下标,语法就是这样的

【热门文章】
【热门文章】