Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chỉ số mảng cân bằng tổng hai bên trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một mảng số nguyên arr làm đối số duy nhất. Hàm phải chọn và trả về một chỉ số từ mảng sao cho tổng các phần tử bên trái của nó bằng tổng các phần tử bên phải. Nếu không tồn tại chỉ số như vậy, trả về -1.

Ví dụ, nếu đầu vào là:

Đầu vào

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

Đầu ra

const output = 3;

Giải thích

Vì tổng các phần tử ở hai bên chỉ số 3 đều bằng nhau (6).

Ví dụ

Dưới đây là mã thực hiện:

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

Kết quả

3