Как правильно записать ответ в объект в требуемом формате?

Четвертый пункт из этого задания. Изначально по формулировки условия я предположил, что ответ нужно записать так:

// создаем объект
let appData = {
    budget: money, //передаем переменную 
    expenses: {
        oneQuestions: twoQuestions,
        threeQuestions: fourQuestions
    },
    optionalExpenses: {},
    income: [], // создаем массив с данными
    timeData: time, // передаем переменную
    savings: false


Но автор предлагает сделать так. Почему?

appData.expenses.oneQuestions = twoQuestions;
appData.expenses.threeQuestions = fourQuestions;


Решение автора задачи

spoiler
let money = +prompt("Ваш бюджет на месяц?", "");
let time = prompt("Введите дату в формате YYYY-MM-DD", new Date().toISOString().slice(0, 10));

/*if (Number.isNaN(money)) {
    alert("Вы ввели не число!");
} */

// создаем объект
let appData = {
    budget: money, //передаем переменную 
    expenses: {},
    optionalExpenses: {},
    income: [], // создаем массив с данными
    timeData: time, // передаем переменную
    savings: false
};

let oneQuestions = prompt("Введите обязательную статью расходов в этом месяце", ""),
    twoQuestions = prompt("Во сколько обойдется?", ""),
    threeQuestions = prompt("Введите обязательную статью расходов в этом месяце", ""),
    fourQuestions = prompt("Во сколько обойдется?", "");

appData.expenses.oneQuestions = twoQuestions;
appData.expenses.threeQuestions = fourQuestions;

alert(appData.budget / 30);
  • Вопрос задан
  • 1271 просмотр
Решения вопроса 1
y0u
@y0u Куратор тега JavaScript
dev
А как вы хотите добавить новое значение в объект?
По условию задачи, во втором пункте вы сначала создаете объект, в котором expenses пустой.
После того, как вы зададите вопросы пользователю, в уже созданный объект вы должны добавить новые значения.

То, как вы написали - не соответствует условию. В вашем варианте, вы сначала должны задать вопрос, а потом уже сформировать объект appData.

UPD:
В комментариях написали:
appData.expenses[oneQuestions] = twoQuestions;
appData.expenses[threeQuestions] = fourQuestions;

Это правильное решение судя по условиям задачи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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