• Почему не работает функция js?

    @justaoneuser
    historydev, логически верно и на SQL посчитать, например. Но это не соответствует условиям задачи.
    В том то и дело, что "как нужно" - это хранить числа в массиве. Остальное - уже фантазии на тему.

    Понимаете, решить экзотическим способом можно, но вопрос у автора был не про code golf, а ну немного другой был вопрос.

    А так, вот:
    const sumInput = (arr = [], fn = () => prompt('', ''), val = fn()) => val && !val.match(/[^\d]/g) ? sumInput([...arr, +val], fn, fn()) : arr.reduce((a, b) => a + b);
    Написано
  • Почему не работает функция js?

    @justaoneuser
    Rsa97, да всё так. Просто хотел уточнить что с рекурсией тоже можно.
    Почему то многие избегают рекурсии в принципе, даже в задачах где код с ней получается проще и короче.
    Это, конечно, не тот случай. Но если хочется поиграться с рекурсивными функциями - ничего страшного, наоборот может пригодиться позже.
    Написано
  • Почему не работает функция js?

    @justaoneuser
    Прикольно, но без массива.
    Вот так ещё можно:

    const sumInput = (arr = []) => ((val, numVal) => val !== null && !isNaN(numVal) && val.trim().length ? sumInput([...arr, numVal]) : arr.reduce((a, b) => a + b))(val = prompt('', ''), Number(val))


    Можно убрать вложенную анонимную функцию, но вообще смысл этих заданий чтобы разобраться с конкретной темой, на сколько понимаю, в данном случае с массивами. А вот такой однострочник со стрелочными функциями как у вас (или у меня) не способствует этой цели. А только запутывает в JS-синтаксисе, который не сказать что простой слишком.
    Написано
  • Почему не работает функция js?

    @justaoneuser
    1. Зачем нужен рекурсивный вызов checkNum?

    Чтобы повторно вызывать prompt и всю остальную логику для условия задачи.
    Есть идеи как это сделать без рекурсии?
    Можно while(true) с break по условию или что то ещё.
    Но чем это лучше рекурсии? Стек не переполнится? Нет лишних вызовов функции? - Всё так, но для этой задачи не принципиально.

    По номеру 2 вы правы.
    А вот массив нужен по условию задачи.
    Написано