美文网首页
Object.keys( )与 for in(对象),for o

Object.keys( )与 for in(对象),for o

作者: 肥羊猪 | 来源:发表于2021-03-30 18:53 被阅读0次

    Object.keys( )不会走原型链,而for in会走原型链

    Object.prototype.test = ‘test';
    
    var obj= {
        a:1,
        b:2,
    }
    //Object.keys不会输出原型链中的数据;
    console.log(Object.keys(obj))
    // ["a", "b"]
    

    for in更适合遍历对象,不要使用for in遍历数组。
    for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值
    for of遍历的只是数组内的元素,而不包括数组的原型属性method索引name

    for(var key in obj){
        console.log(key)
    }
    // a
    // b
    // test    //for in 会把原型链中test 输出
    
    
    `hasOwnPropery`方法可以判断某属性是否是该对象的实例属性
    
    遍历对象
    Object.prototype.method=function(){
      console.log(this);
    }
    var myObject={
      a:1,
      b:2,
      c:3
    }
    for (var key in myObject) {
      console.log(key);
    }
    

    for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continue和return语句

    for-of循环不支持普通对象,但如果你想迭代一个对象的属性,可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法

    for (var key of Object.keys(someObject)) {
      console.log(key + ": " + someObject[key]);
    }
    

    遍历map对象时适合用解构,例如;

    for (var [key, value] of phoneBookMap) {
       console.log(key + "'s phone number is: " + value);
    }
    

    相关文章

      网友评论

          本文标题:Object.keys( )与 for in(对象),for o

          本文链接:https://www.haomeiwen.com/subject/stighltx.html