Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 재귀를 사용하여 배열을 합산하는 수정된 버전

<시간/>

예를 들어, Numbers 배열의 모든 요소를 ​​합산하는 재귀 함수를 작성해야 하지만 뒤틀린 부분은 우리가 작성한 재귀 함수가 추가 변수(메모리)를 초기화할 수 없다는 것입니다.

합계를 저장하거나 배열의 인덱스 개수를 유지하기 위해 변수를 사용할 수 없는 것처럼, 모두 우리가 이미 가지고 있는 것을 사용해야 합니다.

여기 해결책이 있습니다 -

우리는 이미 배열을 가지고 있으며 첫 번째 요소를 사용할 수 있습니다(즉, 재귀 합계를 유지하기 위해 0번째 인덱스에 있는 요소).

접근 방식은 배열에서 하나의 요소를 반복적으로 꺼내고 하나의 요소만 남을 때까지 배열의 첫 번째 요소에 추가하는 것입니다.

하나의 요소만 남으면 배열의 누적 합계가 되어 반환합니다. 이 접근 방식의 코드는 -

예시

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