1. ホーム
  2. javascript

[解決済み] Uncaught TypeError: Object.valuesは関数ではありません JavaScript

2023-04-19 12:25:06

質問

以下のようなシンプルなオブジェクトがあります。

var countries = {
    "Argentina":1,
    "Canada":2,
    "Egypt":1,
};

2つの配列を作成する必要があります。最初の配列は、オブジェクトからのすべてのキーの配列です。この配列は、次のようにして作成しました。

var labels = Object.keys(countries);

これはうまくいきます。国の配列が得られます。さて、その値から配列を作ろうとすると...。

var labels = Object.values(countries);

こんなエラーが出ます。 Uncaught TypeError: Object.values is not a function JavaScript

私は何が間違っているのかわかりません。I console.log countries と宣言する前と後に labels と宣言しても、オブジェクトは同じままです。どうすれば適切に Object.values() ?

どのように解決するのですか?

.values は多くのブラウザでサポートされていません。 .map を使って、すべての値の配列を取得することができます。

var vals = Object.keys(countries).map(function(key) {
    return countries[key];
});

MDN のドキュメントを参照してください。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values または公式ドキュメントを参照してください。 https://tc39.github.io/ecma262/#sec-object.values (訂正してくれた @evolutionxbox に感謝します)