JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで配列内の正の整数だけを二乗して合計を求める方法

正の数・負の数・小数・整数が混在する配列があるとします。この記事では、そのような配列を受け取り、元の配列の中から正の整数だけを取り出して、それぞれを二乗した合計を返す関数をJavaScriptで作成する方法を解説します。

実装例

const arr = [1, -4, 6.1, 0.1, 2.6, 5, -2, 1.9, 6, 8.75, -7, 5];
const squareSum = (arr) => {
    return arr.reduce((acc, val) => {
        // 1つ目の条件で「正の数」であることを、2つ目の条件で「整数」であることを確認
        if(val > 0 && val % 1 === 0){
            acc += val*val;
        };
        return acc;
    },0);
}
console.log(squareSum(arr));

コードのポイント

  • Array.prototype.reduce(): 配列の各要素を順に処理しながら、単一の累積値(ここでは二乗の合計)を組み立てます。
  • val > 0: 値が正の数であることを確認します。0や負の数はこの時点で除外されます。
  • val % 1 === 0: 値を1で割った余りが0なら整数と判定できます。6.1や0.1のような小数はこの条件を満たさないため除外されます。
  • 初期値 0: reduceの第2引数で累積値の初期値を0に設定しているため、該当する要素がひとつも存在しない場合でもエラーにならず0が返ります。

出力結果

コンソールには次のように出力されます。

87

この配列に含まれる正の整数は「1」「5」「6」「5」の4つです。それぞれを二乗すると 1 + 25 + 36 + 25 となり、その合計である 87 が表示されます。このように、条件分岐とreduce()を組み合わせることで、フィルタリングと集計を簡潔なコードで同時に実現できます。

  1. JavaScriptのArray.prototype.map()メソッドの使い方を徹底解説

    Array.prototype.map()とは? JavaScriptのArray.prototype.map()メソッドは、配列の各要素に対してコールバック関数を実行し、その戻り値から新しい配列を作成するためのメソッドです。元の配列は変更されないため、安全にデータ変換を行いたい場合に非常に便利です。 構文 arr.map(function callback(currentValue[, index[, array]]) 各引数の意味は以下のとおりです。 currentValue:現在処理している要素の値 index(省略可能):現在処理している要素のインデックス番号 array(省略可能

  2. JavaScriptの基本配列メソッド解説!push・pop・shift・unshift・spliceの使い方を実例付きで紹介

    JavaScriptには、配列を操作するための便利な組み込みメソッドが数多く用意されています。その中でも特によく使われるのが、要素の追加や削除を行う以下の5つの基本メソッドです。 JavaScriptの主要な配列メソッド一覧 メソッド説明 Array.push()配列の末尾に要素を追加します。 Array.pop()配列の末尾から要素を取り除きます。 Array.unshift()配列の先頭に要素を追加します。 Array.shift()配列の先頭から要素を取り除きます。 Array.splice()配列内の任意の位置で要素の追加・削除を行います。 これらのメソッドは、配列の