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);
Rsa97, да всё так. Просто хотел уточнить что с рекурсией тоже можно.
Почему то многие избегают рекурсии в принципе, даже в задачах где код с ней получается проще и короче.
Это, конечно, не тот случай. Но если хочется поиграться с рекурсивными функциями - ничего страшного, наоборот может пригодиться позже.
Можно убрать вложенную анонимную функцию, но вообще смысл этих заданий чтобы разобраться с конкретной темой, на сколько понимаю, в данном случае с массивами. А вот такой однострочник со стрелочными функциями как у вас (или у меня) не способствует этой цели. А только запутывает в JS-синтаксисе, который не сказать что простой слишком.
Чтобы повторно вызывать prompt и всю остальную логику для условия задачи.
Есть идеи как это сделать без рекурсии?
Можно while(true) с break по условию или что то ещё.
Но чем это лучше рекурсии? Стек не переполнится? Нет лишних вызовов функции? - Всё так, но для этой задачи не принципиально.
По номеру 2 вы правы.
А вот массив нужен по условию задачи.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
В том то и дело, что "как нужно" - это хранить числа в массиве. Остальное - уже фантазии на тему.
Понимаете, решить экзотическим способом можно, но вопрос у автора был не про code golf, а ну немного другой был вопрос.
А так, вот: