一、Object.keys()

  • Object.keys() 方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 (两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性)。返回值是这个对象的所有可枚举属性组成的字符串数组。
  • object对象没有length属性,可以通过Object.keys(person).length,来获取person的长度了

    1. Object.prototype.say="hhh";
    2. let person ={ age: 18 };
    3. console.log(Object.keys(person)); // ["age"]

    二、Object.entries()

  • Object.entries()方法返回一个给定对象自身可枚举属性(不含继承)的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。

    1. let person = { name: "hzy", age: 18 };
    2. console.log(person.entries()); // [['name','hzy'],['age','18']]
    3. let arr = [1, 2];
    4. console.log(arr.entries()); // [['0','1'],['1','2']]

    三、Object.values()

  • Object.values()方法返回一个给定对象自身的所有可枚举属性值(不含继承)的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。

    1. let obj = { 0:'a', 1:'b' }
    2. console.log(Object.values(obj)); // ['a', 'b']