javascript - 使用 if else 状态创建显示可用性的服务
问题描述
) 我有以下代码:
class order {
constructor(gameName, qty, remQty, available){
this.gameName = gameName
this.qty = qty;
this.remQty = remQty;
this.available = available;
}
function() {
if (this.available == 0) {
return " is available"
} else {
return " is not available"
}
}
};
let order = new order ('Call of Duty', '?', '?','?')
let order = new order ('FIFA 21', '?', '?','?')
let order = new order ('Crash Bandicoot', '?', '?','?')
console.log(order1)
我的问题是,我是 JavaScript 新手,我无法让它工作。我想制作一个程序,显示给定数量(库存)的游戏是否可用,如果是,我的代码将响应“可用”否则“不可用”,并且根据给定的订单,剩余数量将发生变化。请帮助我,如果有其他问题我会很乐意回答。
解决方案
你的尝试实际上非常接近,甚至比它必须的更复杂。丢掉一些参数,remQty
就available
可以走了。数量将简单地用一个在每次轮询可用性后递减的数字来确定。
我命名了魔法发生 getAvailability
的函数。这个名称表明我们获得了正在处理的订单的可用性。
在它里面你想知道:有什么可用的。这个答案可以通过检查我们的数量还剩下多少来确定。我们可以通过检查数量是否大于零> 0
来做到这一点。
if (this.qty > 0) {
// Quantity is more than 0.
} else {
// Quantity is not more than 0.
}
在这里,您将返回带有可用性文本的不同字符串。为了给它一些润色,最好使用插值在字符串中注入游戏名称,这是一个用于组合变量和字符串的奇特词。
最简单的方法是使用模板文字字符串。您可能知道字符串可以与' '
or一起使用" "
,但这个可以与反引号一起使用` `
。在该字符串中,您可以像这样放置变量:
// this.gameName refers to the same gameName used in the constructor.
`${this.gameName} is available`;
现在在返回您的字符串(这将结束函数)之前,您需要修改您的订单数量。这意味着减去this.qty
1。这可以通过递减赋值来完成:
// We assign a new value..
this.qty = this.qty - 1;
// ..this does the same, but is shorter.
this.qty -= 1;
或使用减量运算符
// This is also the same, but here it always decrements with 1.
this.qty--;
现在您所要做的就是调用getAvailability
方法(调用意味着运行函数,方法意味着作为对象一部分的函数)并检查它返回的响应。
您可以使用 输出变量和返回值console.log()
。让这个工具成为你的朋友。它将照亮黑暗的地方,并帮助您弄清楚下一步。
检查下面的示例,该示例将所有这些原则放在一起。随时提出任何问题。欢迎来到 JavaScript 的奇妙世界。
class Order {
constructor(gameName, qty) {
this.gameName = gameName;
this.qty = qty;
}
getAvailability() {
if (this.qty > 0) {
this.qty--;
return `${this.gameName} is available`;
} else {
return `${this.gameName} is not available`;
}
}
};
let codOrder = new Order('Call of Duty', 5);
let fifaOrder = new Order('FIFA 21', 2);
let crashBandicootOrder = new Order('Crash Bandicoot', 1);
console.log( codOrder.getAvailability() );
console.log( codOrder.getAvailability() );
console.log( codOrder.getAvailability() );
console.log( codOrder.getAvailability() );
console.log( codOrder.getAvailability() );
console.log( codOrder.getAvailability() );
console.log( fifaOrder.getAvailability() );
console.log( fifaOrder.getAvailability() );
console.log( fifaOrder.getAvailability() );
console.log( crashBandicootOrder.getAvailability() );
console.log( crashBandicootOrder.getAvailability() );
推荐阅读
- javascript - 谁能解释为什么我收到地图功能错误
- python - 如果它不存在 pandas,则将列标题从数据帧写入 csv
- visual-studio-code - 如何在 vscode 上为 css 模块设置更漂亮
- perl - 如何使 podlinkcheck 不抱怨带有片段的 URL
- python - random.randint 没有在 for 循环中重新初始化
- excel - 强制空闲时间以允许加载 RTD 数据
- reactjs - 更改查询文本后数组未重置
- react-native - 打开抽屉时如何隐藏键盘
- javascript - Mongoose - model.find 不是函数
- gdscript - 为什么这个 gdscript 对话框代码不起作用?