在JS中我们最常见的循环语句是for
循环语句,一个简单的for
循环语句如下:
for(var i = 0, n = 100; i < n; i++){
// to do somethings ...
}
不过在JS中还有一种非常实用的循环语句叫for..in
,通常用来遍历数组或对象的属性.
因为发现小伙伴在使用for...in
的时候经常会踩坑,这里再次强调下for..in
语句的释义:
- 用来遍历数组
- 用来遍历对象的属性,注意对象的属性
遍历数组
当使用for...in
遍历数组时,遍历的的每一个子项是数组的索引值
var arr = ["张三","李四","王五"];
var index;
for(index in arr){
console.log(index);
}
// 0
// 1
// 2
遍历对象的属性
当使用for...in
遍历对象时,每一个子项是对象的属性名
var obj = { "a":"张三","b":"李四","c":"王五"};
var pro; // pro =property = 属性
for(pro in obj){
// 注意:先判断该属性是否是对象本身实例化时创建的属性?
// 如果是对象本身实例化时创建的属性,则输出;
// 如果不是,也就存在通过原型(prototype)继承下来的属性,则跳过.
var b = obj.hasOwnProperty(pro);
if(b){
console.log(pro);
}
}
// a
// b
// c