Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで再帰を使用して配列を合計する修正バージョン


たとえば、Numbersの配列のすべての要素を合計する再帰関数を作成する必要がありますが、ひねりを加えると、作成する再帰関数は余分な変数(メモリ)を初期化できません。

変数を使用して合計を格納したり、配列のインデックスのカウントを保持したりすることはできないように、すでに持っているものを使用する必要があります。

これが解決策です-

すでに配列があり、その最初の要素(つまり、再帰的な合計を保持するためにゼロ番目のインデックスにある要素)を使用できます。

アプローチは、配列から1つの要素を繰り返しポップし、1つの要素だけが残るまで、それを配列の最初の要素に追加することです。

要素が1つだけ残っている場合、それは配列の累積合計になり、それを返します。このアプローチのコードは-

になります

const recursiveSum = arr => {
   if(arr.length > 1){
      arr[0] += arr.pop();
      return recursiveSum(arr);
   };
   return arr[0];
};
console.log(recursiveSum([1,2,3,4]));
console.log(recursiveSum([1,2,3,4,3,6,3,32,7,9,5]));
console.log(recursiveSum([]));

出力

コンソールの出力は-

になります
10
75
undefined

  1. 新しいキーワードでJavaScript配列を作成します。

    以下は、新しいキーワードを使用してJavaScript配列を作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style&

  2. JavaScript配列を条件付きで結合しますか?

    以下は、JavaScriptの条件を持つJavaScript配列のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>