用 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 ]
广告