JavaScriptで文字列型のオブジェクトプロパティを配列でラップする方法
この記事では、JavaScriptのオブジェクトに含まれる文字列型のプロパティ値を配列としてラップ(包み込み)する方法を解説します。
実現方法
文字列型のプロパティを配列でラップするには、Object.keys()とreduce()を組み合わせて使用します。さらに、結果を表示する際にはconcat()も活用します。
Object.keys()はオブジェクトのすべてのキーを配列として取得し、reduce()を使って各キーの値を処理していきます。[].concat(値)とすることで、すでに配列である値はそのまま維持され、文字列などの単一の値は自動的に配列の中に格納されます。
サンプルコード
以下が実際のコードです −
var details = { name: ["John", "David"], age1: "21", age2: "23" },
output = Object
.keys(details)
.reduce((obj, tempKey) =>
(obj[tempKey] = [].concat(details[tempKey]), obj), {})
console.log(output)
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します −
node fileName.js.
ここでは、ファイル名を「demo302.js」としています。
出力結果
このプログラムを実行すると、コンソールに以下の出力が表示されます −
PS C:\Users\Amit\javascript-code> node demo302.js
{ name: [ 'John', 'David' ], age1: [ '21' ], age2: [ '23' ] }
出力結果を見ると、「name」プロパティは元々配列だったためそのまま維持され、文字列だった「age1」と「age2」の値はそれぞれ配列[ '21' ]、[ '23' ]としてラップされていることが確認できます。このように、データ構造を統一したい場合などにこのテクニックは非常に便利です。
-
JavaScriptでサブオブジェクトや配列を含むオブジェクトをインポートする方法
はじめに JavaScriptでは、ESモジュール(import / export)の仕組みを利用することで、別ファイルに定義したオブジェクトを簡単に読み込めます。オブジェクトの中にサブオブジェクト(ネストされたオブジェクト)や配列が含まれていても、そのままインポートして扱うことができます。以下に具体的なコード例を示します。 コード例 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta na
-
文字列をJavaScriptオブジェクトに変換する方法【JSON.parse()の使い方】
JavaScriptでJSON形式の文字列をオブジェクトに変換するには、JSON.parse()メソッドを使用します。このメソッドは、引数に渡された文字列を解析(パース)し、対応するJavaScriptオブジェクトを返します。 サンプルコード <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Docum