JavaScriptで配列内の数値のみを抽出して合計する方法
問題の概要
配列を受け取り、その中に含まれる数値のみを抽出して合計を返すJavaScript関数を作成します。
この配列には、数値リテラル、文字列リテラル、オブジェクト、undefinedなど、さまざまな型の値が混在している可能性があります。そのため、数値以外の要素はすべて無視し、数値だけを足し合わせる処理が必要です。
実装例
const arr = [1, 2, 'a', 4];
const countNumbers = (arr = []) => {
let sum = 0;
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(+el){
sum += +el;
};
};
return sum;
}
console.log(countNumbers(arr));コードの解説
このコードでは、単項プラス演算子(+)を使用して各要素を数値に変換しています。変換の結果がtruthy(0以外の数値)であれば、その値を合計に加算します。
たとえば、文字列'a'を数値に変換するとNaNになるため、条件式はfalseと評価され、合計には加算されません。一方で、数値の0はfalsyと評価されるため、この実装では0が配列に含まれていても合計に反映されない点に注意が必要です。厳密に数値型のみを判定したい場合は、typeof el === 'number'を使う方法も検討するとよいでしょう。
出力結果
コンソールには以下のように出力されます。
7
-
JavaScriptで有理数(分数)の配列を合計し、最も簡単な形式で結果を返す方法
問題 「2つの数値を持つ部分配列」をちょうど2つ含む配列を受け取るJavaScript関数を作成する必要があります。各部分配列は、分数形式で表された有理数です。 この関数の役割は、2つの有理数を加算し、その結果を最も簡単な形式(最簡形)で表す2つの数値からなる新しい配列として返すことです。 解法のアプローチ 分数の加算は、以下の手順で行います。 通分する: 2つの分母を掛け合わせて共通の分母を求め、それに合わせて分子も調整します。 分子を加算する: 通分後の分子同士を足し合わせます。 約分する: 最大公約数(GCD)をユークリッドの互除法で求め、分子・分母をそれぞれ割ることで最簡形にしま
-
JavaScriptで配列の偶数を2乗・奇数を平方根に変換して合計を求める方法
問題 数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、配列内の各数値に対して「偶数であれば2乗」「奇数であれば平方根」を求め、それらすべての合計を小数点以下2桁に丸めて返します。 解決のアプローチ この問題は、Array.prototype.map()とArray.prototype.reduce()を組み合わせると簡潔に実装できます。まずmap()で各要素を変換した新しい配列を作り、続いてreduce()でその配列の合計を計算します。最後にMath.round()を使って小数点以下2桁に丸めます。 コード例 以下が実際のコードです − const arr