【发布时间】:2021-12-22 01:03:38
【问题描述】:
我正在使用 React 并希望根据它是否与按下“迭代”按钮的项目匹配来迭代我的“购物车”数组中的对象的“数量”属性。
我原来的解决方案是这样的......
setCart((cart) => {
const itemMatch = cart.find((cartItem) => cartItem.name === item.name);
if (itemMatch !== undefined) {
itemMatch.amount = itemMatch.amount + 1;
} else {
cart.push(item);
}
return [...cart];
})
但是,迭代是按二计数的。
我的第二个解决方案是这样...
setCart((cart) => {
const updatedCart = cart.map((cartItem) => {
if (cartItem.name === item.name) {
return {...cartItem, amount: cartItem.amount + item.amount}
} else {
return cartItem
}
})
return updatedCart;
})
此解决方案有效,但我无法弄清楚这两者之间的区别是什么。如果有人可以帮助解释真正有助于我理解的区别。谢谢。
【问题讨论】:
-
你能详细说明一下用二来数吗?
标签: javascript reactjs iteration