Javascript 未捕获的引用错误:未定义书籍

Javascript 未捕获的引用错误:未定义书籍,javascript,object,Javascript,Object,编写一个函数checkBasket(),让您知道项目是否在篮子中 这是物品篮: amazonBasket = { glasses: 1, books: 2, floss: 100 } 我在JS中尝试的内容: function checkBasket(basket, lookingFor) { for(item of amazonBasket) { if(lookingFor===item){ console.log("This item i

编写一个函数
checkBasket()
,让您知道项目是否在篮子中

这是物品篮:

amazonBasket = {
 glasses: 1,
 books: 2,
 floss: 100
}
我在JS中尝试的内容:

function checkBasket(basket, lookingFor) {
   for(item of amazonBasket)
   {
       if(lookingFor===item){
           console.log("This item is in the basket")
       }else{
           console.log("This item is not in the basket")
       }
})
}

 checkBasket(amazonbasket, books)
i、 e:

支票筐(亚马逊篮子、书籍)

它将返回“此项目在篮子中”


我不明白为什么书是未定义的。

您正在使用字典存储产品,因此检查产品是否在篮子中的最佳选择是迭代该字典的键。您可以简单地使用
Object.keys(obj)
获得一个包含键的数组,然后检查是否有所需的产品

请记住,您不能使用
books
进行搜索,前提是您之前已按如下方式初始化此变量:
let books=“books”
。否则,您应该对照字符串“books”进行检查,因为比较时会进行自动转换

amazonbarket={
眼镜:1,
书籍:2,
牙线:100
}
功能检查篮(篮,查找){
让inBasket=Object.keys(basket);
设itemFound=false;
for(设i=0;i支票篮(Amazonbark,“苏打”)使用for in循环来交互每个对象,然后使用if语句检查对象是否存在于篮子中

amazonBasket = {glasses: 1,books: 2,floss: 100}

function CheckBasket(lookingFor, basketToCheck){
  for(items in basketToCheck){
    if(items == lookingFor){
       alert("Item Found");
    }
  }
 }

 CheckBasket( "glasses", amazonBasket);

问题是您使用的是
书籍
(变量)而不是
“书籍”
(字符串)。使用
Object.keys.includes也更简单

功能检查篮(篮,查找){
if(Object.key(basket.includes)(查找)){
console.log(“此项在篮子中”);
}否则{
console.log(“此项不在篮子中”);
}
}
亚马逊篮={
眼镜:1,
书籍:2,
牙线:100
}

支票篮(Amazonbark,书籍)
显示的唯一
书籍
amazonbarket
的属性。显示与调用
checkBasket()
相关的更多代码上下文,请不要只描述您的代码,请提供一个完整的示例来演示问题。您既没有名为
books
的变量,也没有名为
amazonbarket
的变量,因此这两个变量都未定义。