これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。
Object.values()
メソッドは引数に与えたオブジェクトが所有する列挙可能なプロパティの値からなる配列を返します。配列要素の順序は for...in
ループによる順序と同じです(両者の違いとして、for-in ループではその上プロトタイプチェーン内のプロパティも列挙されます)。
構文
Object.values(obj)
引数
obj
- 返されることになる列挙可能な所有プロパティの値を持つオブジェクト。
戻り値
与えられたオブジェクトの列挙可能な所有プロパティの値を含む配列。
説明
Object.values()
は、object
に直接存在する列挙可能な値が配列要素の文字列に対応した配列を返します。プロパティの順序はマニュアル操作でオブジェクト内のプロパティに対してループさせた時の順序と同じになります。
使用例
var obj = { foo: "bar", baz: 42 }; console.log(Object.values(obj)); // ['bar', 42] // 配列様オブジェクト var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.values(obj)); // ['a', 'b', 'c'] // ランダムなキー順序を持つ配列様オブジェクト var an_obj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.values(an_obj)); // ['b', 'c', 'a'] // 列挙可能でないプロパティ getFoo がある var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } }); my_obj.foo = "bar"; console.log(Object.values(my_obj)); // ['bar'] // オブジェクトでない引数はオブジェクトへと型強制されます console.log(Object.values("foo")); // ['f', 'o', 'o']
ポリフィル (Polyfill)
Object.values
をサポートしていない旧環境に互換性を持たせる場合は、tc39/proposal-object-values-entries や es-shims/Object.values 内にポリフィルがあります。
仕様
仕様 | 策定状況 | コメント |
---|---|---|
ECMAScript 2017 Draft (ECMA-262) Object.values の定義 |
ドラフト | Initial definition. |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 51.0 [1] | 47 (47) | 未サポート | 未サポート | 未サポート [2] |
機能 | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
基本サポート | 未サポート | 51.0 [1] | 47.0 (47) | 未サポート | 未サポート | 未サポート | 51.0 [1] |
[1] フラグ設定が必要。
[2] bug 150131 を参考。