纯Javascript菜单用餐提示作为输出,从选项输入



我在一个编程训练营,这是我的第四周。我很喜欢它,但有时会感到不知所措。这是学习过程的一部分,所以我很擅长。不管怎样,我在过去的4天里一直在学习JavaScript,我们的作业是构建一个餐厅菜单。

我们今天学了嵌套对象,昨天学了forEach循环,昨天学了箭头函数。我真的很喜欢他们,我希望这个项目尽可能地充满活力。我有麻烦让我的主菜单张贴在控制台然而。我在这个网站上找到了一个可能的解决方案,但我不能让它工作。也许我应该用一种更简单的方式来完成它,但我真的想让我的菜单项保持嵌套的样子。以下是我目前所掌握的信息。

console.log ("Welcome to HotHamTawk!")
console.log ("Where there are only three options and a few sides but that's it because it's dirt cheap and we don't care. And we don't make change!")
console.log ( "Now pick your first item already, people are waiting!")

const render = ({name, price}) => {
return(`${name} => $${price}.00`)
}


function resetValuesToZero (obj) {
Object.keys(obj).forEach(function (key) {
if (typeof obj[key] === 'object') {
return resetValuesToZero(obj[key]);
}
obj[key] = 0;
});
}

const main = {
hotdog : {name : "Hotdog" , price : 1},
hamburger : {name : "Hamburger" , price : 2},
taco : {name : "Taco" , price : 1}
}

const side = {
beans : {name : "Beans" , price : 1},
chili : {name : "Chili" , price : 1},
soda : {name : "Soda" , price : 1}
}

console.log(main.hamburger.taco.name); // 70
resetValuesToZero(main);
console.log(main.hamburger.taco.name); // 0


// console.log(render(main.key))

所以现在我试图得到一个输出提示符,它会说:

Hotdog => $1.00
Hamburger => $2.00
Taco => $1.00

你的代码有很多问题,所以我重写了一遍。

console.log ("Welcome to HotHamTawk!")
console.log ("Where there are only three options and a few sides but that's it because it's dirt cheap and we don't care. And we don't make change!")
console.log ( "Now pick your first item already, people are waiting!")
const render = type => {
const output = [`${type} Menu:`];
Object.values(menu[type]).forEach(({name, price}) => {
output.push(`${name} => $${price.toFixed(2)}`);
});
return output.join('n');
}
const main = {
hotdog : {name : "Hotdog" , price : 1},
hamburger : {name : "Hamburger" , price : 2},
taco : {name : "Taco" , price : 1}
};
const side = {
beans : {name : "Beans" , price : 1},
chili : {name : "Chili" , price : 1},
soda : {name : "Soda" , price : 1}
};
const menu = {
'Main' : main,
'Side' : side
};
console.log(render('Main'));
console.log(render('Side'));


最新更新