JavaScriptでオブジェクト配列の特定の値のみを乗算する方法
JavaScriptでは、オブジェクトの配列に含まれる特定のプロパティだけを、条件に応じて書き換えたいケースがよくあります。例えば、金額が一定の値を超えている要素だけを2倍にする、といった処理です。
次のようなオブジェクトの配列があるとします。
var employee =
[
{ name: "John", amount: 800 },
{ name: "David", amount: 500 },
{ name: "Bob", amount: 450 }
]この配列に対して、「amount」の値が500より大きい場合にのみ、その値を2倍にします。つまり、期待される出力は次のとおりです。
[
{ name: 'John', amount: 1600 },
{ name: 'David', amount: 500 },
{ name: 'Bob', amount: 900 }
]サンプルコード
オブジェクトの値を条件付きで乗算するサンプルコードは以下のとおりです。
var employee =
[
{ name: "John", amount: 800 },
{ name: "David", amount: 500 },
{ name: "Bob", amount: 450 }
]
console.log("Before multiplying the result=")
console.log(employee)
for (var index = 0; index < employee.length; index++) {
if (employee[index].amount > 500) {
employee[index].amount = employee[index].amount * 2;
}
}
console.log("After multiplying the result=")
console.log(employee)プログラムの実行方法
上記のプログラムを実行するには、次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を「demo257.js」としています。
実行結果
コンソールには次のような出力が表示されます。
PS C:\Users\Amit\javascript-code> node demo257.js
Before multiplying the result=
[
{ name: 'John', amount: 800 },
{ name: 'David', amount: 500 },
{ name: 'Bob', amount: 450 }
]
After multiplying the result=
[
{ name: 'John', amount: 1600 },
{ name: 'David', amount: 500 },
{ name: 'Bob', amount: 900 }
]処理のポイント
このコードのポイントは、forループで配列の各要素を順番に確認し、if文で「amount > 500」という条件を判定している点です。条件を満たす要素だけが2倍され、それ以外の要素(Davidの500やBobの450)は元の値のまま保持されます。
なお、元の配列を変更したくない場合は、map()メソッドを使って新しい配列を生成する方法もあります。状況に応じて使い分けると、より安全で読みやすいコードになります。
-
JavaScriptのBlobオブジェクトとは?基本と使い方をわかりやすく解説
Blobオブジェクトとは Blob(Binary Large Object)オブジェクトは、不変(イミュータブル)な生データを表現するためのオブジェクトです。Blobはファイルと同じように、データのサイズを表す size プロパティと、MIMEタイプを表す type プロパティを持っています。 File オブジェクトはBlobの派生オブジェクトであるため、Fileが利用できる場面であれば、Blobもそのまま使用することが可能です。 Blobの主な用途としては、テキストやバイナリデータの生成、URL.createObjectURL() を使った一時的なURLの作成、ファイルのダウンロード処理など
-
JavaScriptのRegExp(正規表現)オブジェクトとは?基本の使い方をわかりやすく解説
RegExp(正規表現)オブジェクトは、テキストに対してパターンマッチングを行い、目的の文字列部分を検索・抽出するために使用されます。JavaScriptでは、RegExpオブジェクトを「RegExpコンストラクタ」または「リテラル構文」の2通りの方法で作成できます。 RegExpオブジェクトの作成方法 コンストラクタを使用する場合: new RegExp(pattern) リテラル構文を使用する場合: /pattern/ 主なメソッド test():文字列がパターンに一致するかどうかを真偽値(true / false)で返します。 exec():パターンに一致した文字列を返します。