📅  最后修改于: 2023-12-03 14:44:51.690000             🧑  作者: Mango
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()
方法是一个方便快捷的方法,可以很好地获取给定对象的所有可枚举属性的值,方便开发者在操作对象时使用。其兼容性不是很好,因此使用前需要进行兼容性检查和处理。