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-entrieses-shims/Object.values 内にポリフィルがあります。

仕様

仕様 策定状況 コメント
ECMAScript Latest Draft (ECMA-262)
Object.values の定義
ドラフト Initial definition.
ECMAScript 2017 (ECMA-262)
Object.values の定義
標準  

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 54Edge 完全対応 14Firefox 完全対応 47IE 未対応 なしOpera 完全対応 41Safari 完全対応 10.1WebView Android 完全対応 54Chrome Android 完全対応 54Edge Mobile 完全対応 ありFirefox Android 完全対応 47Opera Android 完全対応 41Safari iOS 完全対応 10.3Samsung Internet Android 完全対応 6.0nodejs 完全対応 7.0.0
完全対応 7.0.0
完全対応 6.5.0
無効
無効 From version 6.5.0: this feature is behind the --harmony runtime flag.

凡例

完全対応  
完全対応
未対応  
未対応
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

 

関連情報

ドキュメントのタグと貢献者

このページの貢献者: segayuu, YuichiNukiyama, lv7777, x2357
最終更新者: segayuu,