JavaScriptでforループを使って配列内のすべての数値を合計する方法
JavaScriptで配列内のすべての数値を1つの変数に合計したい場合、forループを使うのが基本的なアプローチです。手順としては、まず合計値を格納するための変数(total)を0で初期化し、その後、配列の全要素を順番に取り出しながら、total変数に加算していきます。
サンプルデータの準備
今回は、次のような数値が入った配列を例に説明します。
var listOfValues = [10,3,4,90,34,56,23,100,200];
forループで合計を求めるコード例
以下のコードでは、インデックスを0から配列の長さ未満まで繰り返し処理し、各要素をtotal変数に足し合わせています。
var listOfValues = [10,3,4,90,34,56,23,100,200];
var total = 0;
for(let index = 0; index < listOfValues.length ; index++){
total = total + listOfValues[index];
}
console.log("Total Values=" + total);プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node fileName.js
ここでは、ファイル名を「demo86.js」として保存しています。
実行結果(出力)
プログラムを実行すると、コンソールに次のような結果が出力されます。
PS C:\Users\Amit\JavaScript-code> node demo86.js Total Values=520
解説:コードの仕組み
このコードが動く仕組みはシンプルです。
- total = 0:合計を保持する変数を0で初期化します。これにより、加算の開始点が明確になります。
- index < listOfValues.length:配列の長さ(要素数)だけループを回すことで、すべての要素にアクセスできます。
- total + listOfValues[index]:現在の合計値に、インデックスで指定した要素を順に加算していきます。
補足:reduce()メソッドを使った別の書き方
forループ以外にも、ES5以降で使えるreduce()メソッドを使うと、より簡潔に合計を求めることができます。
var listOfValues = [10,3,4,90,34,56,23,100,200];
var total = listOfValues.reduce(function(sum, value){
return sum + value;
}, 0);
console.log("Total Values=" + total); // Total Values=520状況に応じて、可読性の高いforループか、関数型スタイルのreduce()かを選択するとよいでしょう。
-
JavaScriptのループを停止する方法|clearInterval()の使い方を解説
JavaScriptでsetInterval()によって繰り返し実行されている処理(ループ)を停止したい場合は、clearInterval()を使用します。setInterval()は指定した間隔ごとに関数を繰り返し呼び出すメソッドですが、そのままでは無限に処理が続いてしまいます。そこで、あらかじめ戻り値として取得したタイマーIDをclearInterval()に渡すことで、ループを任意のタイミングで止めることができます。コード例以下は、一定回数スクロール処理を繰り返した後にループを停止するサンプルコードです。<!DOCTYPE html> <html lang="
-
JavaScriptで数値配列の分散を計算する方法
問題昇順にソートされた数値の配列を受け取り、その分散(Variance)を計算するJavaScript関数を作成する必要があります。分散とは、一連の数値が平均値からどれだけばらついているかを表す統計量で、まず平均値を求め、その平均との差の二乗和をデータ数で割ることで計算できます。計算式まず、平均値(M)は次のように定義されます。$Mean (M) = ( \sum_{i=0}^{n-1} arr[i])$ / n続いて、分散(V)は各要素と平均値の差を二乗し、それらを合計してデータ数で割った値になります。Variance (V) = $(\sum_{i=0}^{n-1} (arr[i] - M