Части аргументов функции , оператор 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));

→ Ссылка