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

JavaScriptでオブジェクトを配列に変換する方法|キーと値のペアを配列化する実装例

はじめに

JavaScriptでは、オブジェクトのデータを配列形式に変換したい場面がよくあります。たとえば、次のようなキーと値のペアを持つオブジェクトがあるとしましょう。

const obj = {
    name: "Vikas",
    age: 45,
    occupation: "Frontend Developer",
    address: "Tilak Nagar, New Delhi",
    experience: 23,
    salary: "98000"
};

今回の課題は、このオブジェクトを引数として受け取り、各サブ配列が1つのキーと値のペアに対応する「配列の配列」を返す関数を作成することです。

実装方法

まずObject.keys()メソッドでオブジェクトのすべてのキーを取得し、その後ループ処理によって各キーと対応する値を組み合わせた配列を順番に構築していきます。

const obj = {
    name: "Vikas",
    age: 45,
    occupation: "Frontend Developer",
    address: "Tilak Nagar, New Delhi",
    experience: 23,
    salary: "98000"
};

const objectToArray = obj => {
    const keys = Object.keys(obj);
    const res = [];
    for(let i = 0; i < keys.length; i++){
        res.push([keys[i], obj[keys[i]]]);
    };
    return res;
};

console.log(objectToArray(obj));

実行結果

コンソールには以下のように出力されます。

[
    [ 'name', 'Vikas' ],
    [ 'age', 45 ],
    [ 'occupation', 'Frontend Developer' ],
    [ 'address', 'Tilak Nagar, New Delhi' ],
    [ 'experience', 23 ],
    [ 'salary', '98000' ]
]

コードの解説

処理の流れは次の通りです。

1. Object.keys(obj) でオブジェクトの全キーを配列として取得
2. キーの個数分だけforループを実行
3. 各周回で [キー, 値] のペアを作成し、結果格納用の配列にpush
4. 完成した配列の配列をreturnで返す

もっと簡単な方法:Object.entries()を使う

ES2017(ES8)以降では、Object.entries()メソッドを使うことで、同じ結果をわずか1行で得られます。

const result = Object.entries(obj);
console.log(result); // objectToArray関数と同じ出力になる

Object.entries()は、オブジェクト自身の列挙可能なプロパティを [キー, 値] のペアからなる配列として返してくれるため、自前でループを書く必要がありません。モダンなJavaScript開発では、この方法が標準的かつ推奨されています。

まとめ

オブジェクトを配列の配列に変換するには、Object.keys()とループを組み合わせる方法と、Object.entries()を使う方法があります。後者のほうがコードが簡潔で可読性も高いため、特別な理由がない限りObject.entries()の活用をおすすめします。

  1. JavaScriptのArray.flatMap()メソッドとは?ネスト配列をフラット化する使い方を実例で解説

    JavaScriptのflatMap()メソッドは、ネストされた配列の各要素にコールバック関数を適用し、その結果を1階層だけ平坦化(フラット化)して、新しい配列として返します。「map()」と「flat()」を組み合わせた処理を1つのメソッドで実現できるため、入れ子構造の配列をシンプルに変換したい場合にとても便利です。元の配列は変更されず、常に新しい配列が生成される点も覚えておきましょう。以下は、array.flatMap()メソッドを使った具体的なサンプルコードです。サンプルコード<!DOCTYPE html> <html lang="ja"> &

  2. JavaScriptでオブジェクトを新しい配列に変換する方法

    JavaScriptでは、オブジェクトのプロパティやネストされたデータを取り出し、扱いやすい形で新しい配列にフォーマットできます。本記事では、学校(school)オブジェクトに含まれる生徒情報を、文字列形式の配列へ変換する実践的なコード例を紹介します。 ポイントとなるテクニック このサンプルでは、以下の2つのJavaScript機能を活用しています。 分割代入(Destructuring assignment):オブジェクトから特定のプロパティを簡潔に取り出す構文です。 for...of ループ:配列内の各要素を順番に処理するために使用します。 コード例 <!DOCTYPE html