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

Tính trung bình cửa sổ trượt (sliding window) trong JavaScript

Viết hàm nhận mảng và kích thước cửa sổ num, trả về mảng trung bình của mọi cửa sổ liên tiếp độ dài num.

Ví dụ: arr=[1,2,3,4,5], num=2 → [1.5,2.5,3.5,4.5].

Ví dụ

const arr = [1, 2, 3, 4, 5];
const num = 2;
const findContiniousAverage = (arr = [], num = 1) => {
  if (num > arr.length) return [];
  const res = [];
  let sum = 0, left = 0, right = 0;
  for (; right < num; right++) sum += arr[right];
  res.push(sum / num);
  for (; right < arr.length; right++, left++) {
    sum -= arr[left];
    sum += arr[right];
    res.push(sum / num);
  }
  return res;
};
console.log(findContiniousAverage(arr, num));
console.log(findContiniousAverage(arr));

Kết quả

[1.5, 2.5, 3.5, 4.5] [1, 2, 3, 4, 5]