Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng. Hàm phải xây dựng một mảng mới lưu trữ trung bình động của các phần tử của mảng đầu vào. Ví dụ:
[1, 2, 3, 4, 5] → [1, 1.5, 3, 5, 7.5]
Phần tử đầu là trung bình của phần tử đầu, phần tử thứ hai là trung bình của 2 phần tử đầu, phần tử thứ ba là trung bình của 3 phần tử đầu, v.v.
Ví dụ
Dưới đây là mã:
const arr = [1, 2, 3, 4, 5];
const movingAverage = (arr = []) => {
const res = [];
let sum = 0;
let count = 0;
for(let i = 0; i < arr.length; i++){
const el = arr[i];
sum += el;
count++;
const curr = sum / count;
res[i] = curr;
};
return res;
};
console.log(movingAverage(arr));
Kết quả
Kết quả console:
[ 1, 1.5, 2, 2.5, 3 ]