【发布时间】:2020-04-24 21:09:52
【问题描述】:
我对 Javascript 很陌生:我已经随便使用了几个星期了。这是我的第一篇文章,所以如果我不够彻底,我很抱歉,但我认为我一直在下面!
我想创建一个函数 VendingMachine(snack, cash),它有一个包含 4 个项目及其价格的列表,其中包含 2 个参数,“小吃名称”(小吃)和“插入的现金”(现金)。我已经尝试使列表成为一个对象和一个数组,但数组只取得了半成功,但我相信该对象确实是我想要采取的路径,因为......
当使用带有嵌套数组的数组作为零食列表时,唯一的问题是如果 for() 循环在任何数组中都找不到“零食”值,它会打印“未定义”而不是“抱歉,再试一次。”
使用对象中机器中的项目列表,我想检查该键的“snack ==== object.KEY”和“cash >= VALUE”。我的问题是我不太了解有关对象的语法,而且我看到其他人发布的解释和答案对我来说太抽象了,我现在无法理解,或者是更复杂的循环/问题并且看起来并不真正适用于我的情况。除了这个(我也想不通/没用)之外的所有东西:
for(var key in objects) {
var value = objects[key];
}
// Using an array
function vendingMachine(snack, cash) {
//declare nested arrays of snacks & costs
var snacks = [
["Espresso", 1],
["Cappuccino", 2.50],
["Chocolate bar", 2],
["Potato Chips", 3.50]
]
//iterate through array to match snack and check funds
for (var i = 0; i < snacks.length; i++) {
if (snack === snacks[i][0] && cash >= snacks[i][1]) {
if (snack === "Potato Chips") {
console.log("Your " + snack + " have been served");
} else {
console.log("Your " + snack + " has been served");
}
}
else if (snack === snacks[i][0] && cash <= snacks[i][1]) {
console.log("Insufficient funds. Please insert more cash.");
}
}
}
// Using an object (incomplete or perhaps just VERY incorrect, I'm aware, hence why I'm here to understand why!)
function vendingMachine(snack, cash) {
//declare nested arrays of snacks & costs
var snacks = {
"Espresso": 1,
"Cappuccino": 2.50,
"Chocolate bar": 2,
"Potato Chips": 3.50
}
if (snack === snacks.hasOwnProperty() && cash >= snacks.key) {
if (snack === "Potato Chips") {
console.log("Your " + snack + " have been served");
} else {
console.log("Your " + snack + " has been served");
}
}
else if (snack === snacks.hasOwnProperty() && cash <= snacks.key) {
console.log("Insufficient funds. Please insert more cash.");
}
else if (snack != snacks.hasOwnProperty()) {
console.log(snack + " does not exist. Please try again.") //returns undefined
}
}
【问题讨论】:
标签: javascript arrays for-loop iteration javascript-objects