Computer >> Máy Tính >  >> Lập trình >> Javascript

Chỉ mục mảng để cân bằng tổng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các số nguyên, arr, làm đối số đầu tiên và duy nhất.

Hàm của chúng ta được yêu cầu chọn và trả về một chỉ số như vậy từ mảng sao cho tổng các phần tử ở phía bên trái của nó bằng tổng các phần tử ở phía bên phải của nó. Nếu không tồn tại suchindex trong mảng, chúng ta nên trả về -1.

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

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

Đầu ra

const output = 3;

Giải thích đầu ra

Bởi vì tổng các phần tử ở hai bên của chỉ số 3 bằng (6).

Ví dụ

Sau đây là mã -

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));

Đầu ra

3