たとえば、入力の配列が [1, 2, 3, 4] の場合、累積和を計算すると [1, 3, 6, 10] となります。
JavaScript で累積和を計算する方法を以下に示します。
function cumulativeSum(array) {
let result = [];
let sum = 0;
for (let i = 0; i < array.length; i++) {
sum += array[i];
result.push(sum);
}
return result;
}
// 使用例
const arr = [1, 2, 3, 4];
console.log(cumulativeSum(arr)); // [1, 3, 6, 10]JavaScript のmapメソッドを使うと、より簡潔に記述できます。
function cumulativeSum(array) {
let sum = 0;
return array.map((num) => (sum += num));
}
// 使用例
const arr = [1, 2, 3, 4];
console.log(cumulativeSum(arr)); // [1, 3, 6, 10]-
ループを用いた方法 配列をループで走査し、
sumに現在の要素を加算しながら、新しい配列resultに追加していきます。sumが累積的に値を保持します。 -
reduceを用いた方法reduceで現在の合計を保持しつつ、mapで各ステップの累積和を返します。短いコードで記述可能ですが、reduceやmapに慣れていない場合は少し難しく感じるかもしれません。
負の数や空配列の場合にも対応した例を挙げます。
function cumulativeSum(array) {
if (array.length === 0) return [];
let sum = 0;
return array.map((num) => (sum += num));
}
// 負の数を含む例
console.log(cumulativeSum([-1, 2, -3, 4])); // [-1, 1, -2, 2]
// 空配列の場合
console.log(cumulativeSum([])); // []- 数値データの分析
- グラフやヒストグラムの描画
- 配列から特定範囲の合計を効率よく計算する場合(差分の利用)
必要に応じて、詳細な実装や追加の応用例についてもお手伝いできます!