繁体   English   中英

如何确定我的 object 数组是否具有具有特定值的属性

[英]How to determine if my array of object has an attribute with a specific value

我有一个 object 的数组

[{name: "Apple", price: "10", quantity: "1"},{name: "Dog", price: "55", quantity: "2"},{name: "Car", price: "88", quantity: "4"},]  

等等 我如何确定例如我的 2. 对象的名称 == Dog?

我的 IRL 示例是这样的:我有一个购物车,我不想两次添加相同的产品

 const handleAddToCart = (product)=>{
        console.log(inCart)
        if(!inCart.includes(product)){                              
                    product.quantity = product.quantity+1;
                    setInCart(inCart.concat(product));
        }
    }

InCart 是我的 object 数组,产品是数组中的 1 object 上面的版本不好,因为我更新了数量属性,在我重置页面后它会增加乘法次数

您可以使用Array#some来检查是否已经存在具有特定名称的 object。

let name = "Dog";
let hasDuplicate = inCart.some(x => x.name === name);

为了提高性能,请考虑存储一Set名称以进行恒定时间查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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