Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的对象卡住了_Javascript_Javascript Objects - Fatal编程技术网

Javascript中的对象卡住了

Javascript中的对象卡住了,javascript,javascript-objects,Javascript,Javascript Objects,指示 完成canIGet函数。该职能应: 有两个论点: item:表示用户想要购买的内容 金钱:表示用户拥有多少美元 如果用户可以根据下面的价格表购买给定的商品,则返回true,否则返回false: “MacBook Air”-999美元 MacBookPro'-1299美元 “Mac Pro”-2499美元 “苹果贴纸”-1美元 如果项目不在上述苹果产品列表中,则返回false 使用0“如果”条件执行此操作!提示:将上面的价格表放在一个对象中 我的代码 这将通过JavaScript控制台进行

指示

完成canIGet函数。该职能应:

有两个论点: item:表示用户想要购买的内容 金钱:表示用户拥有多少美元 如果用户可以根据下面的价格表购买给定的商品,则返回true,否则返回false: “MacBook Air”-999美元 MacBookPro'-1299美元 “Mac Pro”-2499美元 “苹果贴纸”-1美元 如果项目不在上述苹果产品列表中,则返回false

使用0“如果”条件执行此操作!提示:将上面的价格表放在一个对象中

我的代码

这将通过JavaScript控制台进行。但是,当我通过终端摩卡测试对其进行测试时,它将失败,并产生以下结果:

最终结果


您可能希望使用括号表示法,因为您要传递一个字符串作为属性引用:

return macItems[item] <= money;

如果您在解决任何类型的问题时遇到困难,请务必使用,并始终对其进行调试。简单的方法是使用console.log

问题是macItems.item不起作用,您需要使用macItems[item]表示法


Return语句也有翻转逻辑。macItems.item的值应低于传入以返回true的钱的值,即空中成本999,而我有1000钱,这将等于999>=1000,这将返回false。它应该被翻转以返回macItems[item]只有当money>=价格时,您才能获得它。非常棒的解释,现在完全理解了。谢谢你的帮助!谢谢你的帮助罗科它通过了!
canIGet = function(item, money) {
    var macItems = {
        "MacBook Air": 999,
        "MacBook Pro": 1299,
        "Mac Pro": 2499,
        "Apple Sticker": 1
    }


    return macItems.item >= money;
};
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
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
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;
};