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

【JavaScript】配列内の隣接する2要素の合計を求め、新しい配列として返す方法

本記事では、数値の配列を受け取り、元の配列から隣り合う2つの要素を足し合わせた結果を新しい配列として返すJavaScript関数の作成方法を解説します。

やりたいこと

例えば、入力配列が以下のような場合を考えてみましょう。

const arrayOne = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

この場合、期待される出力は次のとおりです。

const newArrayOne = [1, 5, 9, 13, 17];

0+1=1、2+3=5、4+5=9というように、配列を2要素ずつのペアに区切って合計を計算し、その結果を順番に新しい配列へ格納していきます。

コード例

それでは、この処理を実現する関数を実際に書いてみましょう。

const arrayOne = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

const doubleSum = arr => {
    const res = [];
    for(let i = 0; i < arr.length; i += 2){
        res.push(arr[i] + (arr[i+1] || 0));
    };
    return res;
};

console.log(doubleSum(arrayOne));

出力結果

コンソールには以下のように表示されます。

[ 1, 5, 9, 13, 17 ]

コードの解説

ここでは、この関数がどのように動作しているのかを詳しく見ていきます。

  • forループ:ループ変数iを2ずつ増加させることで、配列を「i番目とi+1番目」というペア単位で処理しています。
  • 合計の計算arr[i] + (arr[i+1] || 0)の部分で現在の要素と次の要素を加算します。ここで|| 0を付けておくのがポイントです。配列の要素数が奇数の場合、最後のペアではarr[i+1]undefinedになりますが、フォールバック値として0が使われるため、エラーにならず安全に処理できます。
  • 結果の格納:計算した合計はpush()メソッドで結果用の配列resに追加され、すべてのペアを処理し終えた後にその配列を返します。

このように、シンプルなループ処理だけで隣接要素同士の合計を効率よく求めることができます。配列の要素数が偶数でも奇数でも対応できる汎用的な実装なので、ぜひ活用してみてください。

  1. 【初心者向け】jQueryのhide()とshow()でHTMLタグを非表示・再表示する方法

    はじめに Webページ上の既存のHTML要素を一時的に取り除き、あとから再び表示したい場面はよくあります。そんなときに便利なのが、jQueryが提供するhide()メソッドとshow()メソッドです。この2つのメソッドを使えば、ボタン操作ひとつでページ内のコンテンツを簡単に「削除(非表示)」したり「追加(表示)」したりできます。 用意するボタン まず、コンテンツを隠すためのボタンと、再表示するためのボタンの2つをHTMLに配置します。 <button type="submit" id="hide">クリックすると上記のコンテンツを非表示にし

  2. JavaScriptでtrタグのidを取得し、新しいtdセルに表示する方法

    はじめにHTMLテーブルの各行(<tr>タグ)に設定されたid属性を取得し、それを新しい<td>セルとして表示したいケースは開発現場でよく見られます。本記事では、JavaScriptのdocument.querySelectorAll()メソッドとinsertCell()メソッドを組み合わせて実現する方法を、実際のコード例とともにわかりやすく解説します。サンプルテーブルの準備まず、例として次のようなテーブルを用意します。<table>   <tr id=StudentDetails>      &