js的for in循环

JavaScript027

js的for in循环,第1张

for in循环中每次循环都会将对象的key赋值

例如for (key in obj),每次遍历key都会被赋值成对象obj的一个键名,{a:1,b:2}遍历过程key依次为a和b对于数组,key取得是数组下标

所以你这里遍历的是个数组,i的值分别是数组的下标,用for in遍历数组可能会由于数组增加可枚举的成员而变得不准确

你可以试一下在你的代码前加上

Array.prototype.a = 123

再运行看下结果就有问题了,不要用for in 遍历数组用forEach

第一种:普通for循环

for(j = 0 j < arr.length j++) {

   

}

第二种:优化版for循环

for(j = 0,len=arr.length j < len j++) {

   

}

第三种:弱化版for循环

for(j = 0 arr[j]!=null j++) {

   

}

第四种:foreach循环

arr.forEach(function(e){  

   

})

第五种:foreach变种

Array.prototype.forEach.call(arr,function(el){  

   

})

第六种:for in循环

for(j in arr) {

   

}

第七种:map遍历

arr.map(function(n){  

   

})

第八种:forof遍历(需要ES6支持)

for(let value of arr) {  

   

})

for..in是用来遍历对象的,跟for循环差不多,var obj = { a:"A", b:"B", c:"C" }

for(var i in obj){ 

    console.log( i, obj[i] ) 

//a  A   

//b  B

//c  C