Части аргументов функции , оператор rest
Как мне изменить параметры и тело функции addOverNum() так, чтобы она считала сумму только тех аргументов, которые больше чем заданное число. Это число должно быть первым параметром функции.
function addOverNum(one, ...args) {
let total = 0;
for (const arg of args) {
total += arg;
}
return total;
}
console.log(addOverNum(50, 15, 27))
console.log(addOverNum(10, 12, 4, 11, 48, 10, 8))
Ответы (2 шт):
Автор решения: 4500zenja
→ Ссылка
А что мешает проверять условие при помощи хотя бы if?
function addOverNum(one, ...args) {
let total = 0;
for (const arg of args) {
if (arg > one) {
total += arg;
}
}
return total;
}
console.log(addOverNum(50, 15, 27))
console.log(addOverNum(10, 12, 4, 11, 48, 10, 8))
Автор решения: EzioMercer
→ Ссылка
Можно даже в одну строчку :)
const addOverNum = (one, ...args) => args.reduce((sum, el) => el > one ? sum + el : sum, 0);
console.log(addOverNum(50, 15, 27));
console.log(addOverNum(10, 12, 4, 11, 48, 10, 8));
Вариант от Grundy с преобразованием true в 1, а false в 0:
const addOverNum = (one, ...args) => args.reduce((sum, el) => sum + (el > one) * el, 0);
console.log(addOverNum(50, 15, 27));
console.log(addOverNum(10, 12, 4, 11, 48, 10, 8));