这篇翻译不完整。请帮忙从英语翻译这篇文章。
该特性目前仍处于 ECMAScript 7 规范提案中
目前的实现在未来可能会发生改变,甚至被完全删除,请谨慎使用。
Object.values()返回一个包含指定对象所有的可枚举属性值的数组,数组中的值顺序和使用for...in循环遍历的顺序一样(不同的是:for-in循环同时返回了该对象原型链上的可枚举属性值,而Object.values()不包括)。
Syntax 语法
Object.values(obj)
Parameters 参数
obj- 被返回可枚举属性值的对象。
Description 描述
Object.values()返回的数组元素的值和单独访问对象属性的值是一样的。数组元素的值在数组的顺序,和使用for-in循环遍历的一样。
Examples 例子
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中找垫片库。
Specifications 规范
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 2016 Draft (7th Edition, ECMA-262) Object.values |
Draft | Not included in the official draft yet. See this stage3 proposal for the current specification draft text. |
Browser compatibility 浏览器兼容
| 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.