const isLetter = (c) => {
if (c === '_' || c === '$') {
return false;
}
try {
eval(`let ${c};`);
return true;
} catch (e) {
return false;
}
}
const isUpperCase = (c) => c === c.toUpperCase();
const convertText = (string) => {
for (let i = 0; i < string.length; i += 1) {
if (isLetter(string[i])) {
return isUpperCase(string[i]) ? string : reverse(string);
}
}
return reverse(string);
}const isLetter = (c) => /\p{L}/u.test(c);
const isUpperCase = (c) => /\p{Lu}/u.test(c); 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;