JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptオブジェクトの値を配列に変換する2つの方法

JavaScriptでは、オブジェクトが持つすべてのプロパティの値を取り出し、それらをひとつの配列としてまとめたい場面がよくあります。

例えば、次のようなオブジェクトがあったとします。

{
   "firstName": "John",
   "lastName": "Smith",
   "isAlive": "true",
   "age": "25"
}

このオブジェクトから、以下のような配列を作成することを目標とします。

const myarray = ['John', 'Smith', 'true', '25'];

解決策1:Object.keys()とforループを使用する

まずObject.keys()メソッドでオブジェクトのキー一覧を配列として取得し、続いてforループで各キーに対応する値を新しい配列へ順番に追加していきます。

const obj = {
   "firstName": "John",
   "lastName": "Smith",
   "isAlive": "true",
   "age": "25"
};
const objectToArray = obj => {
   const keys = Object.keys(obj);
   const res = [];
   for(let i = 0; i < keys.length; i++){
      res.push(obj[keys[i]]);
   };
   return res;
};
console.log(objectToArray(obj));

出力

コンソールには以下の出力が表示されます。

[ 'John', 'Smith', 'true', '25' ]

解決策2:Object.values()を使った1行での実装

より簡潔に書きたい場合は、ES2017(ES8)で導入されたObject.values()メソッドが便利です。このメソッドは、オブジェクト自身の列挙可能なプロパティの値を要素とする配列を直接返してくれるため、たった1行で同じ結果を得られます。

const obj = {
   "firstName": "John",
   "lastName": "Smith",
   "isAlive": "true",
   "age": "25"
};
const res = Object.values(obj);
console.log(res);

出力

コンソールには以下の出力が表示されます。

[ 'John', 'Smith', 'true', '25' ]

特別な理由がない限り、Object.values()を使う方法が最もシンプルで推奨されます。ただし、古いブラウザや環境への対応が必要な場合は、解決策1のような従来の手法を採用するとよいでしょう。

  1. JavaScriptで配列をSet(セット)に変換する方法

    JavaScriptで配列をSetに変換するときの基本JavaScriptでは、Setオブジェクトを使うことで、配列から重複しない一意の値だけを持つコレクションを簡単に作成できます。SetはES6(ECMAScript 2015)で導入された組み込みオブジェクトで、同じ値が複数回追加されても自動的に1つにまとめられるのが特徴です。変換自体は非常にシンプルで、new Set(配列)と書くだけで完了します。コード例:配列からSetへの変換以下は、重複を含む配列をSetに変換して画面に表示するサンプルコードです。<!DOCTYPE html> <html lang=ja> &

  2. 【JavaScript】配列内のネストされたオブジェクトの値を合計する方法

    この記事では、JavaScriptを使って、配列内にネストされた(入れ子構造の)オブジェクトの値を合計する方法を解説します。サンプルコードでは、JSONデータの複数階層に格納された数値(costNum)を順番に取り出し、その合計をブラウザ上に表示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=d