Javascript For/in 循环不工作 - 对象 属性 未定义错误
Javascript For/in loop not working - Object property is not defined Error
所以我正在学习我正在学习的课程中的一个简单的 For/in 循环练习。
我们有一个具有 3 个属性的简单对象,我们必须创建一个带有 2 个参数的函数 - 对象名称和您要查找的项目。
我做了我的功能和老师的解决方案进行了比较,它完全一样。问题是当我在控制台中尝试时,我收到一个错误,指出对象 属性 未定义。
代码如下:
// Question #2:
// Write a function checkBasket() that lets you know if the item is in the basket or not
const amazonBasket = {
glasses: 1,
books: 2,
floss: 100
}
function checkBasket(basket, lookingFor) {
for(item in basket) {
console.log(item);
if(item === lookingFor) {
return `${lookingFor} is in your basket`;
}
}
return `${lookingfor} is not in your basket`;
}
非常感谢大家的帮助!这是一个艰难但愉快的学习过程!
谢谢!
您的代码按我的预期工作,所以问题可能出在您调用函数的方式或代码中未显示的内容。
PS:如果您使用数组而不是对象来存储项目,则可以使用 array.find() 或 array.indexOf() 等来操作篮子更简单。
// Question #2:
// Write a function checkBasket() that lets you know if the item is in the basket or not
const amazonBasket = {
glasses: 1,
books: 2,
floss: 100
}
function checkBasket(basket, lookingFor) {
for(item in basket) {
console.log(item);
if(item === lookingFor) {
return `${lookingFor} is in your basket`;
}
}
return `${lookingFor} is not in your basket`;
}
console.log( checkBasket( amazonBasket, 'floss' ));
console.log( checkBasket( amazonBasket, 'books' ));
console.log( checkBasket( amazonBasket, 'glasses' ));
const amazonBasket = [
{ "order_id": 1, "product_id": 13341544, "product_name": "glasses", "quantity": 1 },
{ "order_id": 1, "product_id": 12121321, "product_name": "books", "quantity": 5 },
{ "order_id": 1, "product_id": 47254114, "product_name": "floss", "quantity": 100 }
];
const checkBasket = ( basket, lookingFor ) => {
const item = basket.find( item => item.product_name === lookingFor );
if ( item ) return `${lookingFor} is in your basket`;
else return `${lookingFor} is not in your basket`;
};
console.log( checkBasket( amazonBasket, 'floss' ));
console.log( checkBasket( amazonBasket, 'books' ));
console.log( checkBasket( amazonBasket, 'glasses' ));
您的代码在最后一行有错字:lookingfor 而不是 lookingFor
刚刚学习到课程的这一部分。该对象应该是一个字符串。试试这样,把代码放好后,调用函数是这样的:
checkBasket(amazonBasket, 'books')
所以我正在学习我正在学习的课程中的一个简单的 For/in 循环练习。 我们有一个具有 3 个属性的简单对象,我们必须创建一个带有 2 个参数的函数 - 对象名称和您要查找的项目。
我做了我的功能和老师的解决方案进行了比较,它完全一样。问题是当我在控制台中尝试时,我收到一个错误,指出对象 属性 未定义。
代码如下:
// Question #2:
// Write a function checkBasket() that lets you know if the item is in the basket or not
const amazonBasket = {
glasses: 1,
books: 2,
floss: 100
}
function checkBasket(basket, lookingFor) {
for(item in basket) {
console.log(item);
if(item === lookingFor) {
return `${lookingFor} is in your basket`;
}
}
return `${lookingfor} is not in your basket`;
}
非常感谢大家的帮助!这是一个艰难但愉快的学习过程!
谢谢!
您的代码按我的预期工作,所以问题可能出在您调用函数的方式或代码中未显示的内容。
PS:如果您使用数组而不是对象来存储项目,则可以使用 array.find() 或 array.indexOf() 等来操作篮子更简单。
// Question #2:
// Write a function checkBasket() that lets you know if the item is in the basket or not
const amazonBasket = {
glasses: 1,
books: 2,
floss: 100
}
function checkBasket(basket, lookingFor) {
for(item in basket) {
console.log(item);
if(item === lookingFor) {
return `${lookingFor} is in your basket`;
}
}
return `${lookingFor} is not in your basket`;
}
console.log( checkBasket( amazonBasket, 'floss' ));
console.log( checkBasket( amazonBasket, 'books' ));
console.log( checkBasket( amazonBasket, 'glasses' ));
const amazonBasket = [
{ "order_id": 1, "product_id": 13341544, "product_name": "glasses", "quantity": 1 },
{ "order_id": 1, "product_id": 12121321, "product_name": "books", "quantity": 5 },
{ "order_id": 1, "product_id": 47254114, "product_name": "floss", "quantity": 100 }
];
const checkBasket = ( basket, lookingFor ) => {
const item = basket.find( item => item.product_name === lookingFor );
if ( item ) return `${lookingFor} is in your basket`;
else return `${lookingFor} is not in your basket`;
};
console.log( checkBasket( amazonBasket, 'floss' ));
console.log( checkBasket( amazonBasket, 'books' ));
console.log( checkBasket( amazonBasket, 'glasses' ));
您的代码在最后一行有错字:lookingfor 而不是 lookingFor
刚刚学习到课程的这一部分。该对象应该是一个字符串。试试这样,把代码放好后,调用函数是这样的:
checkBasket(amazonBasket, 'books')