0
0

Всем доброго времени суток.

Писал код который был дан в уроке, а именно часть 

let money, time;

function start() {
    money = +prompt ("Ваш бюджет на месяц?", "");
    time = prompt ("Введите дату в формате YYYY-MM-DD", "");

    while (isNaN(money) || money == "" || money == null) {
        money = +prompt ("Ваш бюджет на месяц?", ""); 
    }

}
start();

    
let appData = {
    budget: money,
    timeData: time,
    expenses: {},
    optionalExpenses: {},
    income: [],
    savings: true
};


function chooseExpenses() {
    for (let i = 0; i < 2; i++) {
        let a = prompt ("Введите обязательную статью расходов в этом месяце", ""),
            b = prompt ("Во сколько обойдется?", "");
    
        if ( typeof(a)==='string' && typeof(a) != null && typeof(b) != null && a != "" && b != "" && a.length < 50) {
            appData.expenses[a] = b;
        } else {
            i--;
        }
    
    };
}
chooseExpenses();

Но это код не работает, когда в первом вопросе нажимаешь кнопку "Отмена" либо отправляешь пустую строку (что бы исключили в цыкле while), то вопрос должен быть задан повторно, но по факту просто проходит дальше и записывает в money. Это ошибка в уроке либо устаревшая информация? 


student_RdnJcxbQ
4 years ago






Добрый день. Проверил функцию start - работает как необходимо:

если в первом вопросе нажать "отмена" или оставить пустю строку, то выводится второй вопрос, а за ним уже начинается повторение первого вопроса.

Иван Петриченко
4 years ago

У меня когда наживат "отмена" или ок с пустой строкой,  то дальше идет вопрос с датой, и далее вводить нужно статьи расходов. И в итоге показывает бюджет на день - 0. В чем может быть тогда проблема? Код копирую для проверки с этого поста. 

student_RdnJcxbQ
4 years ago

2 ответов