2017-10-16 03:54:43
这两种方式都是用来进行遍历操作的,但是他们之间还是有一些区别的。
var array1 = [1,2,3];
array1.name = "xiaoyu";
for (var i in array1){
console.log(i); //依次输出1 2 3 name
}
console.log(array1.length); //输出3 这是原数组的长度
var array2 = [1,2,3];
array2.name = "xiaoyu";
for (var item of array2){
console.log(item); //输出1 2 3 没有输出name
}
alert(array2.length); //输出3
使用for in 可以遍历数组,但是会存在以下问题:
1.index索引为字符串型数字,不能直接进行几何运算
2.遍历顺序有可能不是按照实际数组的内部顺序
3.使用for in会遍历数组所有的可枚举属性,包括原型。例如上例的name属性
所以for in更适合遍历对象,不要使用for in遍历数组。
var myObject={
a:1,
b:2,
c:3
}
for (var key in myObject) {
console.log(key+":"+myObject[key]);//输出a:1 b:2 c:3
}
两个遍历方式的最终区别就在于:for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有