JavaScript对不同数据结构的常见循环

var obj1 = {
    title : 'tom and jetty',
    author : 'pecool'
}
function Book(){}
Book.prototype.price = 23;
obj1.__proto__ = Book.prototype;

1、带原型属性的循环--for In的使用:

  for in 这种循环一般是用来遍历对象的,它可以循环出对象的属性,其中包括原型中的属性。如果仅想遍历自身的属性,可以使用hasOwnProperty方法来判断。

另外obj1定义如下:我是创建了一个字面量对象obj1,然后将obj1的原型指针让它指向函数Book,Book函数的原型中包含一个属性price。这样做的目的是测试Object实例的对象如何改变它的原型指针,使它指向一个新的原型。从而继承新原型的属性和方法。当然你可以简单点。

for(let item in obj1){
    if(obj1.hasOwnProperty(item)){
        console.log('selfProperty:'+item)
    }else{
        console.log('__proto__Property:'+item)
    }
}
    selfProperty:title     //执行结果
    selfProperty:author    //执行结果
    __proto__Property:price    //执行结果

2、只循环javascript对象自身Key属性--Object.keys()方法的使用:

var key_elements = document.forms[0].elements;
Object.keys(key_elements);

3、只循环javascript对象自身value属性--Object.values()方法的使用:

var key_elements = document.forms[0].elements;
Object.values(key_elements);

4、对普通json结构数据循环

        for(var one in jsonObject){
            //one:表示key
            //jsonObject[one]:表示value
        }              
原文地址:https://www.cnblogs.com/pecool/p/11703102.html