【发布时间】:2021-02-12 06:11:06
【问题描述】:
所以基本上我想要实现的是..我有一个包含对象的数组,在我的例子中是库存物品数组。当我将项目添加到购物车数组时,它应该检查是否已经存在具有相同属性(名称)的对象。如果它存在,它应该只是对它们的计数求和。这样我就没有重复了……但它总结了计数。
const stock = [
{
id: 0,
name: 'Leaf Blower',
price: 250,
stock: 24,
count: 0,
logoURL: process.env.PUBLIC_URL + '/images/1.png',
},
{
id: 1,
name: 'Generator',
price: 1299,
stock: 12,
count: 0,
logoURL: process.env.PUBLIC_URL + '/images/2.png',
},
{
id: 2,
name: 'Log Splitter',
price: 2133,
stock: 5,
count: 0,
logoURL: process.env.PUBLIC_URL + '/images/3.png',
},
{
id: 3,
name: 'Lawn Mower',
price: 250,
stock: 24,
count: 0,
logoURL: process.env.PUBLIC_URL + '/images/4.png',
},
{
id: 4,
name: 'Chainsaw',
price: 344,
stock: 16,
count: 0,
logoURL: process.env.PUBLIC_URL + '/images/5.png',
},
];
这个:
const shoppingCart = [
{
id: 0,
name: 'Leaf Blower',
price: 250,
stock: 24,
count: 5,
logoURL: process.env.PUBLIC_URL + '/images/1.png',
},
id: 0,
name: 'Leaf Blower',
price: 250,
stock: 24,
count: 3,
logoURL: process.env.PUBLIC_URL + '/images/1.png',
}
]
应该是:
const shoppingCart = [
{
id: 0,
name: 'Leaf Blower',
price: 250,
stock: 24,
count: 8,
logoURL: process.env.PUBLIC_URL + '/images/1.png',
}
]
【问题讨论】:
-
由于您没有显示任何试图满足您所提供要求的代码,我们无法为您提供帮助。
-
我尝试过这样的事情,它按名称检查,并且对象已经存在,它应该获取它的值并将其求和......然后覆盖数组中的对象。但后来我看到了一些 reduce 方法,我删除了所有内容。
-
@IanKemp 我的解决方案几乎就像下面提供的 sabbir.alam 一样。
标签: javascript arrays reactjs reduce