JavaScriptで配列内の各整数の階乗を返す関数の作成方法
本記事では、数値の配列を受け取り、各要素に対応する階乗を含む新しい配列を返すJavaScript関数の作成方法を解説します。
実装のアプローチはシンプルです。まず、1つの数値を受け取ってその階乗を返す再帰関数を定義します。次に、map()メソッドを使って元の配列を反復処理し、各要素の階乗を計算します。最後に、結果として得られた新しい配列を返します。
それでは、実際のコードを見ていきましょう。
サンプルコード
const arr = [4, 8, 2, 7, 6, 20, 11, 17, 12, 9];
const factorial = (num, fact = 1) => {
if(num){
return factorial(num-1, fact*num);
};
return fact;
};
const factorialArray = arr => arr.map(element => factorial(element));
console.log(factorialArray(arr));コードの解説
factorial関数は、デフォルト引数fact = 1を持つ再帰関数です。numが0(偽値)になるまで自分自身を呼び出しながらfact * numを累積していき、再帰が終了した時点で計算済みの階乗値factを返します。
factorialArray関数では、配列のmap()メソッドを使用して各要素にfactorial関数を適用し、階乗の値からなる新しい配列を効率的に生成しています。
実行結果
コンソールには以下のように出力されます。
[ 24, 40320, 2, 5040, 720, 2432902008176640000, 39916800, 355687428096000, 479001600, 362880 ]
このように、再帰関数とmap()メソッドを組み合わせることで、簡潔かつ読みやすいコードで配列全体の階乗を一括計算できます。
-
JavaScriptで配列の最小値と最大値を返す関数の作成方法
問題配列を受け取り、新しい配列を返すJavaScript関数を作成する必要があります。戻り値となる配列の最初の要素には入力配列の最小値を、2番目の要素には最大値を格納します。コード例以下のコードでは、Array.prototype.reduce()メソッドを使用して、配列を一度だけ走査しながら最小値と最大値を同時に求めています。const arr = [56, 34, 23, 687, 2, 56, 567]; const findMinMax = (arr = []) => { const creds = arr.reduce((acc,
-
Array.prototypeを拡張するカスタムfind関数の実装方法
課題Arrayクラスのプロトタイプオブジェクト上に定義されるJavaScript関数を書く必要があります。この関数はコールバック関数を引数として受け取り、そのコールバックがtrueを返した最初の要素を返すものとします。また、現在処理中の要素を第1引数、現在のインデックスを第2引数として、コールバック関数に渡す必要があります。コード例以下が実際のコードです。const arr = [4, 67, 24, 87, 15, 78, 3]; Array.prototype.customFind = function(callback){ for(let i = 0; i &l