关于for in遍历数组的疑问

关于for in遍历数组的时候,
var arr=[1,2,3,4]
for(var i in arr){
alert(i)
}这里输出i是0,1,2,3这样的,但是疑问在关于for in语句里面的i当前的值是0,1,2,3;还是指实际在for in循环中i是没有值的,这里显示的0,1,2,3指的是数组的下标值(只是因为是数组才会显示为数字)这个意思

阅读 3.2k
3 个回答

这里的i是下标值,alert(arr[i])才是输出你数组里的值

for...in一般用来访问对象的可枚举属性,返回其属性名,这里对应的就是Array的下标。但是for...in并不是按照顺序访问的,访问数组一般还是用for...of

这里alert出来的就是数组中值的索引。数组索引被当做了数组对象的可枚举属性。

for...in 遍历的是对象的可枚举属性。
Object.keys() 会返回对象的所有可枚举属性组成的数组。

也就是说 for...in 列出来的就是 Object.keys() 返回的数组中的所有值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题