JavaScriptでオブジェクトのオブジェクトを「オブジェクトの配列を持つオブジェクト」に変換する方法
JavaScriptでは、キーごとにオブジェクトが格納された「オブジェクトのオブジェクト」を、各値が配列(中身は1つのオブジェクト)になっている形式へ変換できます。この変換には、Object.fromEntries() を map() と組み合わせて使うのが効果的です。
変換の仕組み
まず Object.entries() を使って元のオブジェクトを「[キー, 値] のペア」からなる配列に変換します。次に map() で各値を配列でラップし、最後に Object.fromEntries() でペアの配列を再びオブジェクトへ戻す、という流れになります。
コード例
const studentDetails = {
'details1': {Name: "John", CountryName: "US"},
'details2': {Name: "David", CountryName: "AUS"},
'details3': {Name: "Bob", CountryName: "UK"},
};
console.log(
Object.fromEntries(Object.entries(studentDetails).map(([key,
value]) => [key, [value]]))
);
上記のプログラムを実行するには、次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を demo45.js としています。
実行結果
実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo45.js
{
details1: [ { Name: 'John', CountryName: 'US' } ],
details2: [ { Name: 'David', CountryName: 'AUS' } ],
details3: [ { Name: 'Bob', CountryName: 'UK' } ]
}
このように、details1・details2・details3 の各プロパティの値が、単一のオブジェクトを含む配列に変換されていることが確認できます。データ構造を統一したい場合や、後続の処理で配列操作を行いたい場合などに便利なテクニックです。
-
【JavaScript入門】複数のオブジェクトを1つにマージして単一のオブジェクト配列を作成する方法
JavaScriptでは、Object.assign()メソッドとスプレッド構文(...)を組み合わせることで、配列内の複数のオブジェクトを1つのオブジェクトに簡単にマージすることができます。 Object.assign()は、1つ以上のコピー元オブジェクトから、コピー先のオブジェクトへすべてのプロパティをコピーするためのメソッドです。スプレッド構文を使って配列の要素を展開することで、各オブジェクトのキーと値が1つのオブジェクトに統合されます。 コード例 以下のコードは、配列内の複数のオブジェクトを単一のオブジェクトにマージする例です。 <!DOCTYPE html> <ht
-
JavaScriptでnull・空のオブジェクトを含む配列に値を割り当てる方法
JavaScriptでは、forEach()メソッドとObject.keys()メソッドを組み合わせることで、nullや空のオブジェクトを含む配列に対して効率的に値を割り当てることができます。本記事では、実際のコード例を交えながら、その具体的な実装方法をわかりやすく解説します。 サンプルコード 以下は、JavaScriptを使用してnull/空のオブジェクトを持つ配列に値を割り当てるコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu