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

JavaScriptで配列の隣接する2つの要素を一度に合計する方法

今回は、数値の配列を受け取り、元の配列から隣り合う2つの要素を順に足し合わせた合計値を要素とする新しい配列を返すJavaScript関数を作成する方法を解説します。

処理の概要

例えば、次のような入力配列があったとします。

const arr = [3, 6, 3, 87, 3, 23, 2, 2, 6, 8];

この場合、期待される出力は以下のようになります。

  • 3 + 6 = 9
  • 3 + 87 = 90
  • 3 + 23 = 26
  • 2 + 2 = 4
  • 6 + 8 = 14

つまり、出力は次の配列になります。

const output = [9, 90, 26, 4, 14];

実装コード

この問題は、アロー関数とforループを組み合わせることで簡潔に実装できます。ポイントは、ループカウンタを2ずつ増やして隣接するペアを取り出し、arr[i+1]が存在しない場合(奇数個の要素の場合)には|| 0によって0を加算するようにしている点です。

const arr = [3, 6, 3, 87, 3, 23, 2, 2, 6, 8];
const twiceSum = arr => {
    const res = [];
    for(let i = 0; i < arr.length; i += 2){
        res.push(arr[i] + (arr[i+1] || 0));
    };
    return res;
};
console.log(twiceSum(arr));

実行結果

このコードをコンソールで実行すると、次の出力が得られます。

[ 9, 90, 26, 4, 14 ]

補足:偶数個・奇数個どちらの配列にも対応

(arr[i+1] || 0)という書き方により、配列の要素数が奇数の場合でもエラーにならず、最後の要素がそのまま加算されます。例えば[1, 2, 3]を渡した場合は[3, 3]が返され、最後の「3」は単独で扱われます。より厳密に書きたい場合は、(arr[i+1] ?? 0)のようにNullish合体演算子を使用するのも良いでしょう。

  1. JavaScriptのArray.values()メソッドとは?使い方とサンプルコードを徹底解説

    JavaScriptのArray.values()メソッドとは? JavaScriptのArray.values()メソッドは、対象の配列に含まれるすべての値を格納したイテレーターオブジェクトを返します。ES2015(ES6)以降で利用可能なこのメソッドは、for...ofループやスプレッド構文([...arr])と組み合わせることで、配列の各要素を効率的に取り出せます。 なお、keys()やentries()がインデックス情報も一緒に返すのに対し、values()は純粋に「値」だけを順番に提供する点が大きな特徴です。 基本構文 arr.values() 引数は不要で、戻り値として新しいArr

  2. JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説

    Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g