MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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

语法

Object.values(obj)

参数

obj
被返回可枚举属性值的对象。

返回值

一个包含对象自身的所有可枚举属性键值的数组。

描述

Object.values() 方法返回的数组元素的值和单独访问对象属性的值是一样的。数组元素的值在数组的顺序,和使用 for-in 循环遍历的结果一样。

示例

var obj = { foo: "bar", baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]

// array like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']

// array like object with random key ordering
var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']

// getFoo is property which isn't enumerable
var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
my_obj.foo = "bar";
console.log(Object.values(my_obj)); // ['bar']

// non-object argument will be coerced to an object
console.log(Object.values("foo")); // ['f', 'o', 'o']

Polyfill 

为了使不支持  Object.values() 方法的旧环境兼容 Object.values(),可在 tc39/proposal-object-values-entries 或 shims/Object.values 中找到兼容旧浏览器的方案

规范

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
Object.values
Living Standard Initial definition.
ECMAScript 2017 (ECMA-262)
Object.values
Standard  

浏览器兼容性

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support
59
(Yes) Nightly build 未实现 未实现 10.1.1
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未实现 未实现 (Yes) Nightly build 未实现 未实现 未实现

[1] See bug 150131.

相关链接

文档标签和贡献者

 此页面的贡献者: spiritree, percy507, maicss, xgqfrms-GitHub, Hushabyme, webery
 最后编辑者: spiritree,