对数组的遍历和对对象的遍历 --- for ... in 和 for ... of 的区别

var arr=["张三","李四","王五","赵六"];
let person = {
  username: 'luohao',
  password: '123456',
  hometown: '湖北省'
}
//for ... of 专属于数组的遍历方式
for (var value of arr){
  console.log(value);
}
for (let index in arr) {
  console.log(index, " : ", arr[index]);
}


//for ... in 最佳于对象的遍历方式
for (let index in person) {
  console.log(index, " : ", person[index]);
}
/*
for (var value of person){
  //悲剧的诞生: person is not iterable
  console.log(value);
}
*/
Object.keys(person).forEach(function(key) {
  console.log(key, " : ", person[key]);
});

可以使用遍历对象的方式for ... in 来遍历数组,将数组看成是有索引下标和索引下标对应的值构成的键值对。

不可以使用遍历数组的方式 for ... of 来遍历对象。这是需要注意的一点,经常混淆。

Object.keys()获取的仅仅是实例对象的属性,原型中的属性不会获取到,可以看出for ... in 和 Object.keys()之间的区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值