JavaScriptで配列の合計値が偶数か奇数かを判定する方法
本記事では、配列内の全要素の合計を求め、その結果が偶数か奇数かに応じて文字列を返すJavaScript関数の実装方法を解説します。
問題
整数の配列 arr を引数として受け取るJavaScript関数を作成する必要があります。この関数は、配列内のすべての要素の合計が奇数であれば文字列「odd」を、偶数であれば文字列「even」を返すようにします。
解決のアプローチ
まず、配列メソッドの reduce() を使って配列全体の合計値を算出します。次に、合計値を 2 で割った余り(剰余演算子 % の結果)が 0 かどうかをチェックすることで、偶数・奇数の判定を行います。
コード例
以下が実際のコードです。
const arr = [5, 1, 8, 4, 6, 9];
const assignSum = (arr = []) => {
// reduce()で配列の全要素を合計する
const sum = arr.reduce((acc, val) => {
return acc + val;
}, 0);
// 合計が2で割り切れるかどうかで偶数・奇数を判定
const isSumEven = sum % 2 === 0;
return isSumEven ? 'even' : 'odd';
};
console.log(assignSum(arr));
コードの解説
reduce()メソッドは、初期値0から開始し、各要素を順番に累積値accに加算していきます。sum % 2 === 0という式により、合計値が偶数かどうかを真偽値で判定しています。- 最後に三項演算子を使い、条件が真なら「even」、偽なら「odd」を返します。
出力
上記のコードを実行すると、コンソールには次のように表示されます。
odd
この例では、配列 [5, 1, 8, 4, 6, 9] の合計は 33 となるため、結果は「odd」となります。
-
【JavaScript】配列の部分和(後方からの累積和)を求める方法を解説
問題 数値の配列を受け取り、新しい配列を構築して返すJavaScript関数を作成します。戻り値となる配列の各要素には、元の配列において「その位置より右側にあるすべての要素(自分自身を含む)」の合計が格納されます。 コード例 以下が実際のコードです。 const arr = [5, 6, 1, 3, 8, 11]; const partialSum = (arr = []) => { let sum = arr.reduce((acc, val) => acc + val); const res = []; let x = 0; if(arr.le
-
JavaScriptの配列から奇偶が異なる唯一の要素を返す方法
問題の概要整数の配列 arr を第1引数(かつ唯一の引数)として受け取るJavaScript関数を作成します。この配列には、「すべて偶数+奇数が1個だけ」または「すべて奇数+偶数が1個だけ」という特徴があります。関数の役割は、その中で唯一ほかと性質が異なる要素を見つけ出し、それを返すことです。たとえば、次のような入力が与えられた場合を考えてみましょう。入力const arr = [5, 9, 7, 11, 34, 23, 77];出力const output = 34;出力の解説この配列はほぼすべて奇数で構成されていますが、34 だけが偶数です。したがって、返すべき値は 34 となります。実装