繁体   English   中英

Function 循环通过 object 键抛出未定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM