const movingAverage = (data, windowSize) => {
let sum = data.slice(0, windowSize).reduce((acc, cur) => acc + cur, 0);
const result = [sum / windowSize];
for (let i = windowSize; i < data.length; i += 1) {
sum = sum - data[i - windowSize] + data[i];
result.push(sum / windowSize);
}
return result;
};
console.log(movingAverage([9, 3, 2, 0, 1, 5, 1, 0, 0], 3));
// Array(7) [ 4.666666666666667, 1.6666666666666667, 1, 2, 2.3333333333333335, 2, 0.3333333333333333 ]
const StringChallenge = (str) =>
str.replaceAll(/(?<=[13579])(?=[13579])/g, '-')
.replaceAll(/(?<=[2468])(?=[2468])/g, '*');
const StringChallenge = (str) =>
str.split('').reduce(
(acc, dig) => {
const sign = +dig ? (dig % 2 ? '-' : '*') : '';
return {
str: acc.str + (acc.sign === sign ? sign : '') + dig,
sign,
};
},
{ str: '', sign: '' },
).str;