JavaScriptで配列内の素数だけを合計する方法
本記事では、数値の配列を受け取り、その中に含まれる素数のみの合計を返すJavaScript関数の作成方法について解説します。
実装の方針
この処理を実現するためには、次の2つの関数が必要になります。
- isPrime関数: 与えられた数が素数かどうかを判定するヘルパー関数
- primeSum関数: 配列の各要素を走査し、素数だけを合計する本体の関数
コード例
実際のコードは以下の通りです。
const arr = [43, 6, 6, 5, 54, 81, 71, 56, 8, 877, 4, 4];
const isPrime = n => {
if (n===1){
return false;
}else if(n === 2){
return true;
}else{
for(let x = 2; x < n; x++){
if(n % x === 0){
return false;
}
}
return true;
};
};
const primeSum = arr => {
let sum = 0;
for(let i = 0; i < arr.length; i++){
if(!isPrime(arr[i])){
continue;
};
sum += arr[i];
};
return sum;
};
console.log(primeSum(arr));
コードの解説
isPrime関数(素数判定)
引数として渡された数値 n に対して、以下の順序で判定を行います。
nが1の場合は素数ではないためfalseを返します。nが2の場合は最小の素数であるためtrueを返します。- それ以外の場合は、2から
n-1までの整数で順番に割り算を行い、一度でも余りが0になれば素数ではないと判断してfalseを返します。 - 最後まで割り切れる数が見つからなければ、その数は素数なので
trueを返します。
primeSum関数(合計処理)
合計値を保持する変数 sum を0で初期化し、for ループで配列の各要素を1つずつ確認します。isPrime の判定結果が false(素数ではない)の場合は continue でスキップし、素数である場合のみ sum に加算します。ループ完了後に合計値を返します。
実行結果
サンプル配列 [43, 6, 6, 5, 54, 81, 71, 56, 8, 877, 4, 4] の場合、素数は 43、5、71、877 の4つです。したがって、コンソールには以下の値が出力されます。
43 + 5 + 71 + 877 = 996
-
JavaScriptで数値と文字列が混在する配列の合計を求める方法
問題整数と文字列形式の数字(例えば 34 や 23 など)が混在した配列を受け取り、その配列内のすべての値を合計して、合算された新しい数値を返すJavaScript関数を作成する必要があります。文字列形式の数字も数値として扱い、すべて足し合わせるのがポイントです。解決アプローチこの問題を解く最もシンプルな方法は、各要素に単項プラス演算子「+」を適用することです。単項プラス演算子は文字列を数値に変換できるため、文字列と整数が混在する配列でもそのまま合計計算ができます。以下はその実装コードです。 { let sum = 0; for(let i = 0; i < arr.lengt
-
JavaScriptで配列の偶数を2乗・奇数を平方根に変換して合計を求める方法
問題 数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、配列内の各数値に対して「偶数であれば2乗」「奇数であれば平方根」を求め、それらすべての合計を小数点以下2桁に丸めて返します。 解決のアプローチ この問題は、Array.prototype.map()とArray.prototype.reduce()を組み合わせると簡潔に実装できます。まずmap()で各要素を変換した新しい配列を作り、続いてreduce()でその配列の合計を計算します。最後にMath.round()を使って小数点以下2桁に丸めます。 コード例 以下が実際のコードです − const arr