📜  Object.Values() javascript (1)

📅  最后修改于: 2023-12-03 14:44:51.690000             🧑  作者: Mango

Object.values() 方法介绍

Object.values() 是一个 JavaScript 方法,用于返回一个给定对象的所有可枚举属性的值所构成的数组。这个数组的顺序与手动遍历操作时的顺序相同。

语法
Object.values(obj)
参数
  • obj:要返回其可枚举属性值的对象。
返回值

返回一个数组,这个数组包含了对象中所有可枚举属性值的列表,顺序与遍历操作一致。

示例
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // [1, 2, 3]
兼容性

Object.values() 方法的兼容性不是很好。在 ES6 规范中,它被定义为一种静态方法,只能被对象的“构造函数”调用。因此,只有在 ES6 环境中才能正常使用。

实现兼容性

为了在 ES6 环境中使用 Object.values() 方法,可以使用 Polyfill 实现对不支持 Object.values() 方法的浏览器进行兼容:

if (!Object.values) {
  Object.values = function(obj) {
    if (obj !== Object(obj))
      throw new TypeError('Object.values called on a non-object');
    var valArr = [];
    for (var key in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, key)) {
        valArr.push(obj[key]);
      }
    }
    return valArr;
  }
}

这段代码在未能支持 Object.values() 方法的情况下,手动实现该方法返回值。这样可以实现跨浏览器兼容性。

总结

Object.values() 方法是一个方便快捷的方法,可以很好地获取给定对象的所有可枚举属性的值,方便开发者在操作对象时使用。其兼容性不是很好,因此使用前需要进行兼容性检查和处理。