javascript for...in

在JS中我们最常见的循环语句是for循环语句,一个简单的for循环语句如下:

for(var i = 0, n = 100; i < n; i++){
    // to do somethings ...        
}

不过在JS中还有一种非常实用的循环语句叫for..in,通常用来遍历数组或对象的属性.

因为发现小伙伴在使用for...in的时候经常会踩坑,这里再次强调下for..in语句的释义:

  1. 用来遍历数组
  2. 用来遍历对象的属性,注意对象的属性

遍历数组

当使用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
原文地址:https://www.cnblogs.com/taadis/p/12125897.html