Испытываю сложности с одним элементом в моем скрипте на Javascript

Я пишу скрипт, который запрашивает у пользователя ввод чисел до ввода слова “quit”. Программа функционирует, но возникает сложность с подсчетом количества введенных значений, не включая слово-терминатор. Буду признателен за помощь.

<script>
    let finalWord = 'quit';
    let valuesArray = [];
    let userValue = '';

    do {
        userValue = prompt('Введите число или quit для завершения').toLowerCase();
        valuesArray.push(userValue);
    } while (userValue !== finalWord);

    document.write('<p>');
    for (let i = 0; i < valuesArray.length - 1; i++) {
        document.write(valuesArray[i]);
        if (i < valuesArray.length - 2) {
            document.write(', ');
        }
    }
    document.write('</p>');
</script>

Попробуйте сначала проверять, если введено слово ‘quit’, и только потом добавлять число в массив. А как вы думаете, стоит ли проверять корректность числовых значений? Поделитесь, интересно узнать ваше мнение.

Попробуйте использовать бесконечный цикл с break: запрашивайте ввод, и если введено quit, выходите, иначе добавляйте значение в массив. Такой подход сразу исключает лишние проверки. Что думаете, какие преимущества он дает?

Я бы решил проблему чуть по-другому – сразу при вводе проверять, является ли значение quit, и только если нет, добавлять его в массив. Мне так было удобнее, т.к. не нужно потом заботиться об удалении лишнего значения. Лично я ещё добавлял проверку, чтобы вводилось именно число, так как от этого зависит корректность работы скрипта. Надеюсь, такой вариант будет для вас полезен.

Можно решить задачу, проверяя условие до добавления значения в массив, как уже писал кто-то, но я предпочитаю использовать цикл while с проверкой внутри, чтобы исключить лишние элементы. Так сразу поймешь, что введено значение выхода и не дублировать проверки после. В работе с числами всегда полезно проводить валидацию, чтобы избежать неожиданных ошибок при дальнейшей обработке данных.