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

JavaScriptで数値配列の絶対値の合計を求める方法

JavaScriptで、正の数と負の数が混在する配列を受け取り、そのすべての要素の絶対値の合計を返す関数を作成する方法を解説します。今回はMath.abs()などの組み込みライブラリ関数を使わずに実装するのがポイントです。

問題の概要

例として、次のような配列が与えられた場合を考えてみましょう。

const arr = [1, -5, -34, -5, 2, 5, 6];

期待される出力

この場合、各要素の絶対値(1 + 5 + 34 + 5 + 2 + 5 + 6)を合計した結果が出力されればOKです。

58

実装コード

それでは、この関数のコードを見ていきましょう。

const arr = [1, -5, -34, -5, 2, 5, 6];
const absoluteSum = arr => {
    let res = 0;
    for(let i = 0; i < arr.length; i++){
        if(arr[i] < 0){
            res += (arr[i] * -1);
            continue;
        };
        res += arr[i];
    };
    return res;
};
console.log(absoluteSum(arr));

コードの解説

このコードでは、以下の手順で処理を行っています。

  • まず結果を格納する変数resを0で初期化します。
  • forループで配列の各要素を順番にチェックし、要素が負の数(0より小さい値)の場合は-1を掛けて正の値に変換してから加算します。
  • 正の数の場合はそのまま加算します。
  • すべての要素の処理が完了したら、合計値resを返します。

出力結果

コンソールに出力すると、次のようになります。

58

別のアプローチ:reduceを使った簡潔な書き方

組み込み関数の制約がない場合は、reduce()メソッドを使うともっと簡潔に書けます。

const absoluteSum = arr => arr.reduce((acc, val) => acc + Math.abs(val), 0);
console.log(absoluteSum(arr)); // 58

状況に応じて、ループによる実装とreduce()を使った実装を使い分けるとよいでしょう。

  1. JavaScriptで配列の交互要素(1つおきの要素)の合計を求める方法

    交互要素の合計とは本記事では、数値の配列を唯一の引数として受け取り、配列内の交互の要素(インデックスが偶数の位置にある要素)の合計を計算して返すJavaScript関数の実装方法を解説します。例えばー入力配列が以下の場合を考えてみましょう。const arr = [1, 2, 3, 4, 5, 6, 7];この場合、出力は次のようになります。1 + 3 + 5 + 7 = 16サンプルコード以下が実際の実装コードです。const arr = [1, 2, 3, 4, 5, 6, 7]; const alternativeSum = (arr = []) => {    

  2. JavaScriptで配列の合計値が偶数か奇数かを判定する方法

    本記事では、配列内の全要素の合計を求め、その結果が偶数か奇数かに応じて文字列を返すJavaScript関数の実装方法を解説します。 問題 整数の配列 arr を引数として受け取るJavaScript関数を作成する必要があります。この関数は、配列内のすべての要素の合計が奇数であれば文字列「odd」を、偶数であれば文字列「even」を返すようにします。 解決のアプローチ まず、配列メソッドの reduce() を使って配列全体の合計値を算出します。次に、合計値を 2 で割った余り(剰余演算子 % の結果)が 0 かどうかをチェックすることで、偶数・奇数の判定を行います。 コード例 以下が実際のコ