[英]How to determine if Javascript array contains an object with an attribute that equals a given value?
[英]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.