说明
完成canIGet
功能。这个功能应该:
item
:代表用户想要购买的内容money
:代表用户拥有多少美元true
,否则返回false:
如果false
不在上述Apple产品列表中,则返回item
使用0'if'条件执行此操作! (提示:将上面的价格表放在一个对象中)。
canIGet('MacBook Air', 100) // returns false
canIGet('MacBook Air', 1000) // returns true
我的代码
canIGet = function(item, money) {
var macItems = {
"MacBook Air": 999,
"MacBook Pro": 1299,
"Mac Pro": 2499,
"Apple Sticker": 1
}
return macItems.item >= money;
};
这将通过JavaScript控制台。但是,当我通过终端(mocha测试)进行测试时,它会失败并产生以下结果:
终端结果
canIGet
✓ should be defined
1) returns the correct results for MacBook Air
2) returns the correct results for MacBook Pro
3) returns the correct results for Mac Pro
4) returns correct results for Apple Sticker
✓ returns false for non-Apple products
答案 0 :(得分:0)
您可能希望使用括号表示法,因为您将字符串作为属性引荐来传递:
return macItems[item] <= money;
如果你想测试可负担性,还要确保使用<=
:
function canIGet(item, money) {
return {
"MacBook Air": 999,
"MacBook Pro": 1299,
"Mac Pro": 2499,
"Apple Sticker": 1
}[item] <= money;
}
console.log( canIGet("MacBook Air", 998) ); // false
答案 1 :(得分:0)
如果您在解决任何类型的问题时遇到问题,请始终进行调试。简单的方法是使用console.log()
问题是macItems.item不起作用,你需要使用macItems [item]表示法
返回语句也有翻转逻辑。 macItems.item应该具有比传入的钱更低的值以返回true,即空气成本999并且我有1000个钱,这将等于999> = 1000,并且这将返回false。它应该被翻转以返回macItems [item]&lt; = money
调试信息的功能
canIGet = function(item, money) {
console.log(item)
console.log(money)
var macItems = {
"MacBook Air": 999,
"MacBook Pro": 1299,
"Mac Pro": 2499,
"Apple Sticker": 1
}
console.log(macItems[item])
return macItems[item] <= money;
};