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

JavaScript에서 합계의 균형을 맞추기 위한 배열 인덱스

<시간/>

문제

정수 배열 arr을 첫 번째이자 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 왼쪽에 있는 요소의 합이 오른쪽에 있는 요소의 합과 같도록 배열에서 그러한 인덱스 하나를 선택하고 반환해야 합니다. 배열에 그러한 인덱스가 없으면 -1을 반환해야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우

입력

const arr = [1, 2, 3, 4, 3, 2, 1];

출력

const output = 3;

출력 설명

인덱스 3의 양쪽에 있는 요소의 합이 같기 때문입니다(6).

예시

다음은 코드입니다 -

const arr = [1, 2, 3, 4, 3, 2, 1];
const balancingIndex = (arr = []) => {
   const findSum = arr => arr.reduce((acc, x) => acc + x, 0);
   for(let i = 0; i < arr.length; i++){
      const leftSum = findSum(arr.slice(0, i));
      const rightSum = findSum(arr.slice(i + 1));
      if(leftSum === rightSum){
         return i;
      };
   };
   return -1;
};
console.log(balancingIndex(arr));

출력

3