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

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

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

例えば、以下のようなユーザー情報を格納したオブジェクトを考えてみましょう。

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

このオブジェクトから、プロパティの値だけを抜き出した次のような配列を作成することを目標とします。

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

それでは、この変換を実現するコードを見ていきましょう。

方法1: Object.keys()とforループを使用する

まず、Object.keys()メソッドでオブジェクトのすべてのキーを取得し、そのキーを使って各プロパティの値を順番に新しい配列へ追加していきます。

サンプルコード

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行での実装

よりシンプルな別の解決策として、Object.values()メソッドを使う方法があります。このメソッドは、オブジェクト自身の列挙可能なプロパティの値を要素とする配列を直接返してくれるため、先ほどのループ処理をわずか1行で置き換えられます。

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

どちらの方法を選ぶべきか

単純にすべての値を取得したいだけであれば、Object.values()を使うのが最も簡潔で可読性も高いため、推奨されます。一方、変換の過程で独自のロジックを加えたい場合(例えば特定の条件でフィルタリングしたり、値を加工したりする場合)は、forループを使った方法の方が柔軟に対応できるというメリットがあります。

  1. 【初心者向け】JavaScriptのArray.from()メソッドの使い方を実例で解説

    JavaScript の Array.from() メソッドは、length プロパティを持つオブジェクト(配列風オブジェクト)や、文字列・Map・Set などの反復可能(イテラブル)なオブジェクトから、新しい Array オブジェクトを生成して返すためのメソッドです。元のオブジェクトは変更されず、常に新しい配列インスタンスが返されます。 基本構文 Array.from(obj, mapFunction, val) パラメータの説明 obj:配列へ変換したい対象のオブジェクト。配列風オブジェクト(length プロパティを持つもの)や反復可能なオブジェクトを指定します。 mapFunctio

  2. JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説

    Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g