Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การคำนวณค่าเฉลี่ยของหน้าต่างเลื่อนใน JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์จำนวนเต็ม arr เป็นอาร์กิวเมนต์แรก และตัวเลข num (num < ความยาว arr) เป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันต้องสร้างและคืนอาร์เรย์ใหม่ที่มีค่าเฉลี่ยของ 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]