@as_viper
Начинающий веб-разработчик

Как сделать валидацию данных(проверку как на money) на данные которые мы получаем на вопрос 'Во сколько это обойдется?’ в функции getExpensesMonth?

Всем добрый вечер!
Как сделать валидацию данных(проверку как на money) на данные которые мы получаем на вопрос 'Во сколько это обойдется?’ в функции getExpensesMonth ?
Пробовал разные варианты, но не срабатывает..

'use strict';

let money,
start = function () {
    do {
        money = prompt('Ваш месячный доход?', '');
        console.log(money);
    }
    while (isNaN(money) || money == '' || money == null);
};
start();

function getExpensesMonth() {
    let sum = 0;
    for (let i = 0; i < 2; i++) {
        if (i === 0) {
            requiredMonthlyExpenses1 = prompt('Какие обязательные ежемесячные расходы у вас есть?', '');
        } else if (i === 1) {
            requiredMonthlyExpenses2 = prompt('Какие обязательные ежемесячные расходы у вас есть?', '');  
        }
        
        if ((typeof (sum)) != 'string' && sum != '' && sum != null) {
            sum += prompt('Во сколько это обойдется?', '');
            console.log(typeof sum); 
        } 
    }
    return sum;
}
let howMuchCost = getExpensesMonth();


Т.е. тип данных переменной sum не пропускает ничего, кроме числа как в функции start().

Посоветуйте пожалуйста, как лучше сделать...
Спасибо!
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
@timokins
Данное условие никогда не выполнится:
if ((typeof (sum)) != 'string' && sum != '' && sum != null) {

1. sum != ''
используйте !==, чтобы не было преобразование типов, иначе sum != '' будет false при let sum = 0;
2. sum += prompt('Во сколько это обойдется?', '');
prompt возвращает строку, поэтому после выполнения данной операции на выходе будет строка,
что противоречит Вашему условию (typeof (sum)) != 'string'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы