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

JavaScriptで配列の交互乗算和を計算する方法

JavaScriptで配列の交互乗算和を計算する方法

本記事では、数値の配列を受け取り、隣り合う要素をペアごとに掛け合わせた値を合計した「交互乗算和」を返すJavaScript関数の作成方法を解説します。

例えば、以下のような配列があるとします。

const arr = [1, 2, 3, 4, 5, 6, 7];

この場合、出力は次のように計算されます。

1*2 + 3*4 + 5*6 + 7
= 2 + 12 + 30 + 7
= 51

つまり、期待される最終的な出力は 51 となります。

それでは、この関数を実際に実装してみましょう。

実装例

コードは以下の通りです。

const arr = [1, 2, 3, 4, 5, 6, 7];
const alternateOperation = arr => {
    const productArr = arr.reduce((acc, val, ind) => {
        if(ind % 2 === 1){
            return acc;
        };
        acc.push(val * (arr[ind + 1] || 1));
        return acc;
    }, []);
    return productArr.reduce((acc, val) => acc + val);
};
console.log(alternateOperation(arr));

処理の流れ

このコードの仕組みを順番に見ていきましょう。

1. ペアごとの積を生成

最初の reduce() メソッドで配列を走査し、偶数インデックス(0番目・2番目・4番目…)の要素のみを対象に、隣接する次の要素との積を計算して新しい配列 productArr に格納します。奇数インデックスの要素は return acc; によってスキップされます。

2. ペアがない要素への対応

配列の長さが奇数の場合、最後の要素にはペアとなる相手が存在しません。そこで arr[ind + 1] || 1 を使うことで、隣接要素が存在しないときには自動的に 1 が掛けられ、その要素自身の値が結果に反映されます。

3. 合計の計算

最後に、生成された productArr の全要素をもう一度 reduce() で合計すれば、目的の「交互乗算和」が完成します。

出力

コンソールには以下が出力されます。

51
  1. 【初心者向け】JavaScriptのreverse()メソッドで配列を逆順にする方法

    JavaScriptのreverse()メソッドは、配列の要素を元の順序と逆順に入れ替えるための便利な関数です。このメソッドを呼び出すと、配列の最初の要素が最後に、最後の要素が最初に移動し、配列全体が反転されます。reverse()メソッドの基本reverse()は配列そのものを変更する「破壊的メソッド」である点に注意してください。つまり、元の配列の順序が直接書き換えられます。元の配列を保持したい場合は、あらかじめslice()やスプレッド構文([...arr])などでコピーを作成してからreverse()を使用するのがおすすめです。サンプルコード以下は、ボタンをクリックすると配列の要素が逆順

  2. JavaScriptにおける配列の分割代入(Destructuring)の基本と使い方

    分割代入(Destructuring)とは、配列から値を取り出して個別の変数に展開するための構文です。ES2015(ES6)で導入されたこの機能を使うと、配列の各要素を簡潔かつ読みやすく変数に割り当てることができます。 配列の分割代入のサンプルコード 以下は、JavaScriptで配列の分割代入を行うコード例です。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport&quo