zoukankan      html  css  js  c++  java
  • 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
            }              
  • 相关阅读:
    分组PARTITION BY及游标CURSOR的用法
    dotnet core 3.1+consul 学习(1)
    常用状态码
    docker 安装consul以及部署consul集群
    泛型
    redis面试题(1)
    asp net core 3.1启动过程源码解读
    .net core 2.x到3.x变化 -> Endpoint Routing
    jwt登录验证逻辑
    .Net Core3.1+Jenkins+Docker+Git实现自动化部署
  • 原文地址:https://www.cnblogs.com/pecool/p/11703102.html
Copyright © 2011-2022 走看看