这是我的挑战:
- 完成
canIGet
功能。这个功能应该:
- 有两个论点:
- 'item'应代表用户想要购买的内容
- 'money'应代表用户拥有多少美元
- 如果用户可以根据下面的价格表支付给定的商品,则返回'true',否则返回false:
- 'MacBook Air' - 999美元
- 'MacBook Pro' - 1299美元
- 'Mac Pro' - 2499美元
- 'Apple Sticker' - $ 1
- 如果'item'不在上面的列表apple products
中,则返回'false'
(而不是返回true / false我正在登录到控制台)
我很感激我对错误的解释。
我的代码:
var canIGet = function(item, money){
if ((money >= 2499) && (item == "Mac Pro" || "Macbook Pro" || "Macbook Air" || "Apple sticker")){
console.log("You can afford a Mac Pro");
}
else if ((2499 > money) && (money >= 1299) && (item == "Macbook Pro" || "Macbook Air" || "Apple sticker")){
console.log("You can afford a Macbook Pro");
}
else if ((1299 > money) && (money >= 999) && (item == "Macbook Air" || "Apple sticker")){
console.log("You can afford a Macbook Air");
}
else if ((999 > money) && (money >= 1) && (item == "Apple sticker")){
console.log("You can afford a Apple sticker");
} else {
console.log("Get a job!");
}
};
canIGet("Mac Pro", 1500);
答案 0 :(得分:1)
基本Javascript(以及大多数其他语言):
(item == "Mac Pro" || "Macbook Pro" || "Macbook Air" || "Apple sticker")){
没有针对每个字符串测试item
。您正在对字符串进行布尔OR,然后将OR
结果与项目进行比较。
e.g。它被解析/执行为
(item == true || true || true || true)
(item == true)
("Sticker" == true)
true
你必须把它写成
if (item == 'Mac Pro') || (item == 'Macbook Pro') || etc...