[英]Function looping through object keys throws undefined
当调用销售功能时,我正在尝试遍历 Inventory object,它应该检查请求的文章及其数量。
进行销售时始终更新库存,如果 de object 中的物品达到 0,则应从库存中删除该物品。
到目前为止,我用一个 forEach 和一个简单的 For 尝试了这个,但没有运气。
调用 function 时,我总是得到“未定义”。
const inventory = {
shoes: 10,
socks: 6,
shirts: 10,
pants: 5,
}
function sale(arti, amount){
Object.keys(inventory).forEach(key => {
let keyitem = inventory[key]
if(keyitem === arti){
if(keyitem.val > amount){
keyitem.val - amount
return 'Article sold'
} else if (keyitem.val === 0){
keyitem.val - amount
delete inventory.key
return 'Article sold'
} else if (keyitem.val < amount){
return 'Theres no inventory for the amount you requested'
}
}
});
}
sale('shoes', 7)
如果可以进行销售,Function 应该返回并更新库存 object。
所以如果我调用 sale('shoes', 7) 然后控制台记录 object,鞋子现在应该是 3。
您不能在forEach
回调中从 function 返回。 您可以使用实际的foreach
循环来实现这一点:
在这里,我删除了您的部分代码,以向您展示如何从foreach
循环内部返回。 您的代码中仍然存在一些逻辑错误,但这些不是本演示的主题。
const inventory = { shoes: 10, socks: 6, shirts: 10, pants: 5, } function sale(arti, amount){ for(let key in inventory) { let keyitem = inventory[key] if(keyitem === 10){ return "returns from inside the foreach loop"; } } } console.log(sale('socks', 7));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.