Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 슬라이딩 윈도우의 평균 계산

<시간/>

정수 배열 arr을 첫 번째 인수로, 숫자 num(num

예를 들어 -

입력 배열과 숫자가 -

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

그러면 출력은 다음과 같아야 합니다. -

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

크기 2의 가능한 연속 창은 (1, 2), (2, 3), (3, 4) 및 (4, 5)이므로

예시

이에 대한 코드는 -

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

출력

콘솔의 출력은 -

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