JavaScriptで計算されたプロパティに値を代入する方法
オブジェクトの準備
まず、次のような顧客情報を格納したオブジェクトの配列を用意します。
const customerDetails=[
{customerFirstName: "David"},
{customerLastName: "Miller"},
{customerCountryName: "US"},
{customerAge: "29"},
{isMarried: false},
{customerCollegeName: null}
];
この配列に対して slice() と map() を組み合わせることで、特定のプロパティを抽出し、「propertyKey」「propertyValue」という計算されたプロパティに値を代入できます。
コード例
const customerDetails=[
{customerFirstName: "David"},
{customerLastName: "Miller"},
{customerCountryName: "US"},
{customerAge: "29"},
{isMarried: false},
{customerCollegeName: null}
];
const newCustomerDetails =
customerDetails.slice(2,4).concat(customerDetails[5]).map(obj=>({
propertyKey: Object.keys(obj)[0],
propertyValue: Object.values(obj)[0]
}));
console.log(newCustomerDetails);
上記のプログラムを実行するには、次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を demo135.js として保存しています。
実行結果
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo135.js
[
{ propertyKey: 'customerCountryName', propertyValue: 'US' },
{ propertyKey: 'customerAge', propertyValue: '29' },
{ propertyKey: 'customerCollegeName', propertyValue: null }
]
コードの解説
このコードの処理内容は以下の通りです。
slice(2,4) により、配列のインデックス2〜3にある要素(customerCountryName と customerAge)を取り出し、concat() でインデックス5の要素(customerCollegeName)を連結しています。
その後、map() の中で Object.keys() と Object.values() を使って各オブジェクトを変換し、プロパティ名を「propertyKey」、その値を「propertyValue」に格納した新しいオブジェクトの配列を生成しています。このようにすることで、元のオブジェクトの構造に関係なく、統一された形式のデータへと変換することが可能です。
-
JavaScriptのlastIndexプロパティとは?正規表現のマッチ位置を取得する方法
lastIndexプロパティとは JavaScriptにおける「lastIndex」プロパティは、正規表現オブジェクトが持つプロパティの一つで、直前のマッチが終了した位置(インデックス)を返します。そして、次回の検索はその位置から再開されるという仕組みになっています。 重要な注意点として、lastIndexプロパティは「g」(グローバル)フラグが設定されている場合にのみ機能します。「g」フラグがない状態では、lastIndexは常に0のまま変化しないため、連続した検索を行うことができません。 以下は、JavaScriptでlastIndexプロパティを使用する際のコード例です。 サンプルコード
-
JavaScriptのsourceプロパティとは?正規表現パターンテキストを取得する方法を解説
JavaScriptのsourceプロパティは、RegExp(正規表現)オブジェクトに設定されたパターン文字列そのものを返すプロパティです。g(グローバルマッチ)やi(大文字・小文字を区別しない)などのフラグは結果に含まれず、マッチング対象となる純粋な正規表現テキストのみを取得できます。 動的に正規表現を組み立てたい場合や、デバッグ時に実際に適用されているパターンを確認したい場合などに活用できる便利なプロパティです。 基本構文 const regex = /pattern/flags; console.log(regex.source); // パターン文字列のみが返される サンプルコード