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
的变量,因此这两个变量都未定义。