美文网首页
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