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

Trung bình lớn nhất của mảng con có độ dài xác định 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ố thứ nhất và một số num làm đối số thứ hai.

Hàm phải tìm mảng con liên tiếp có độ dài num có giá trị trung bình lớn nhất. Và cần xuất ra giá trị trung bình lớn nhất đó.

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

Đầu vào

const arr = [1, 12, -5, -6, 50, 3]; const num = 4;

Đầu ra

const output = 12.75;

Giải thích đầu ra

Vì mảng con mong muốn là [12, -5, -6, 50].

Ví dụ

Dưới đây là mã:

const arr = [1, 12, -5, -6, 50, 3]; const num = 4; const maxAverage = (arr = [], num) => { let sum = arr.slice(0, num).reduce((acc, v) => acc + v, 0); let max = sum; for (let i = 1; i <= arr.length - num; i++) { sum = sum + arr[i + num - 1] - arr[i - 1]; max = Math.max(max, sum); } return max / num; }; console.log(maxAverage(arr, num));

Đầu ra

12.75