Object.values()

这篇翻译不完整。请帮忙从英语翻译这篇文章

该特性目前仍处于 ECMAScript 7 规范提案中
目前的实现在未来可能会发生改变,甚至被完全删除,请谨慎使用。

Object.values() 方法返回一个包含给定对象所有的可枚举属性值的数组,数组中的值顺序和使用for...in循环遍历的顺序一样(不同的是:for-in 循环同时返回了该对象原型链上的可枚举属性值,而 Object.values() 则不包括)

语法

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 2017 Draft (ECMA-262)
Object.values
Draft Not included in the official draft yet. See this stage3 proposal for the current specification draft text.

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 未实现 Nightly build 未实现 未实现 未实现 [1]
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未实现 未实现 Nightly build 未实现 未实现 未实现

[1] See bug 150131.

相关链接

文档标签和贡献者

 此页面的贡献者: Hushabyme, webery
 最后编辑者: Hushabyme,