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

Tính toán trung bình của một cửa sổ trượt trong JavaScript

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à một số, num (num

Ví dụ -

Nếu mảng đầu vào và số là -

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

Sau đó, đầu ra phải là -

const output = [1.5, 2.5, 3.5, 4.5];

bởi vì các cửa sổ liên tục có thể có ở kích thước hai là (1, 2), (2, 3), (3, 4) và (4, 5)

Ví dụ

Mã cho điều này sẽ là -

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

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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