このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Object.values()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2017年3月⁩.

Object.values() 静的メソッドは、指定されたオブジェクトが持つ列挙可能なプロパティの文字列キーのプロパティ値を配列で返します。

試してみましょう

const object1 = {
  a: "somestring",
  b: 42,
  c: false,
};

console.log(Object.values(object1));
// Expected output: Array ["somestring", 42, false]

構文

js
Object.values(obj)

引数

obj

オブジェクト。

返値

指定されたオブジェクトが持つ列挙可能なプロパティの文字列キーのプロパティ値を配列で返します。

解説

Object.values()object に直接得られる文字列キーのプロパティを列挙した配列の値を返します。これは for...in ループで反復処理するのと同じですが、for...in ループではプロトタイプチェーンのプロパティも列挙されます。 Object.values() が返す配列の順序は、 for...in ループで指定された順序と同じです。

プロパティキーが必要な場合は、代わりに Object.keys() を使用します。プロパティのキーと値の両方が必要な場合は、代わりに Object.entries() を使用します。

Object.values の使用

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

// 配列風オブジェクト
const arrayLikeObj1 = { 0: "a", 1: "b", 2: "c" };
console.log(Object.values(arrayLikeObj1)); // ['a', 'b', 'c']

// ランダムなキー順序を持つ配列風オブジェクト
// 数値のキーを使用すると、値はキーの番号順に返される
const arrayLikeObj2 = { 100: "a", 2: "b", 7: "c" };
console.log(Object.values(arrayLikeObj2)); // ['b', 'c', 'a']

// 列挙可能でないプロパティ getFoo がある
const myObj = Object.create(
  {},
  {
    getFoo: {
      value() {
        return this.foo;
      },
    },
  },
);
myObj.foo = "bar";
console.log(Object.values(myObj)); // ['bar']

プリミティブに Object.values() を使用

オブジェクト以外の引数はオブジェクトに変換されます。 undefinednull はオブジェクトに強制できず、 TypeError が発生します。文字列のみが自分自身で列挙可能なプロパティを持つことができ、 他のプリミティブはすべて空の配列を返します。

js
// オブジェクトでない引数はオブジェクトへと型強制される
console.log(Object.values("foo")); // ['f', 'o', 'o']

// undefined と null 以外のプリミティブは、自分自身でプロパティを持つことはない
console.log(Object.values(100)); // []

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-object.values

ブラウザーの互換性

関連情報