JavaScriptで配列の隣接する2要素ずつの合計を新しい配列として返す方法
問題の概要
本記事では、数値の配列を受け取り、元の配列の隣接する2つの要素をペアごとに合計した値からなる新しい配列を返すJavaScript関数の作成方法を解説します。
例えば、入力配列が以下の場合を考えてみましょう。
const arr = [3, 6, 3, 87, 3, 23, 2, 2, 6, 8];
この場合、出力は次のようになります。
const output = [9, 90, 26, 4, 14];
(3 + 6)、(3 + 87)、(3 + 23)、(2 + 2)、(6 + 8) というように、配列の先頭から2要素ずつを1組のペアとして合計を求めています。
サンプルコード
実際のコードは以下の通りです。
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));
コードのポイント
- ループ変数
iを1つずつではなく2ずつ増加させることで、隣接する2要素を1組として効率よく処理できます。 arr[i+1] || 0という記述により、配列の長さが奇数で最後の要素にペアが存在しない場合でもエラーが発生せず、その要素単独の値(+0)が結果に追加されます。
出力結果
コンソールには次のように表示されます。
[ 9, 90, 26, 4, 14 ]
-
JavaScriptで配列内の要素から目標の合計値を持つグループを数える方法
問題の概要 まず、次のような数値の配列を例に考えてみましょう。 const arr = [1, 2, 1, 3, 2]; ここで求められているのは、次の3つの引数を受け取るJavaScript関数です。 第1引数:対象となる数値の配列 第2引数:目標となる合計値(sum) 第3引数:合計値を構成する要素の個数(num)※同じ要素の重複使用は不可 関数は、指定された個数の要素の合計が目標値と一致するグループの総数を返します。 入力例と出力例 入力値が次のとおりだとします。 const arr = [1, 2, 1, 3, 2]; const sum = 3; const num = 2; こ
-
JavaScriptで配列内の最小値の桁和が偶数かどうかを判定する方法
本記事では、数値の配列を唯一の引数として受け取るJavaScript関数の実装方法を解説します。この関数は、まず配列の中から最小の数値を選び出し、その数値を構成するすべての桁の合計(桁和)を計算します。そして、その桁和が偶数であれば true を、奇数であれば false を返すという仕様です。動作の例たとえば、次のような入力配列が与えられた場合を考えてみましょう。const arr = [12, 657, 23, 56, 34, 678, 42];この場合の出力は次のようになります。const output = false;理由はシンプルです。配列内の最小値は 12 であり、その桁和は 1