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

Tìm chỉ số trung bình của mảng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript đưa vào một mảng, arr, đại diện cho vị trí của các tiểu hành tinh khác nhau trong không gian một chiều.

Đối với mỗi tiểu hành tinh, giá trị tuyệt đối đại diện cho kích thước của nó, và dấu hiệu đại diện cho hướng của nó (nghĩa là tích cực bên phải, nghĩa là tiêu cực bên trái). Mỗi tiểu hành tinh di chuyển với tốc độ như nhau.

Chức năng của chúng tôi có nhiệm vụ tìm ra trạng thái của các tiểu hành tinh sau tất cả các vụ va chạm. Nếu hai tiểu hành tinh gặp nhau, tiểu hành tinh nhỏ hơn sẽ phát nổ. Nếu cả hai có cùng kích thước, cả hai sẽ phát nổ. Hai tiểu hành tinh chuyển động cùng chiều sẽ không bao giờ gặp nhau.

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

Đầu vào

const arr = [1, 7, 3, 6, 5, 6];

Đầu ra

const output = 3;

Giải thích đầu ra

Tổng các số ở bên trái chỉ số 3 (nums [3] =6) bằng tổng các số ở bên phải chỉ số 3.

Ngoài ra, 3 là chỉ mục đầu tiên xảy ra điều này.

Ví dụ

Sau đây là mã -

const arr = [1, 7, 3, 6, 5, 6];
const medianIndex = (arr = []) => {
   let sum = arr.reduce((acc, num) => acc + num, 0)
   let currentSum = 0
   for (let i = 0; i < arr.length; i++) {
      currentSum += (arr[i - 1] || 0)
      sum -= arr[i]
      if (currentSum === sum) {
         return i
      }
   }
   return -1
}
console.log(medianIndex(arr));

Đầu ra

3