Javascript 向购物车添加已添加其他计数的项目

Javascript 向购物车添加已添加其他计数的项目,javascript,arrays,reactjs,map-function,spread-syntax,Javascript,Arrays,Reactjs,Map Function,Spread Syntax,我正在构建一个电子商务应用程序,并用下面的代码实现“添加到购物车”功能。 棘手的部分是,当我尝试向购物车添加一个已经添加了不同计数的项目时 所以在下面的代码中,我不是 能够理解“if(existItem){…}”部分。该块应该处理上述问题 案例 导入{ 购物车添加商品, }来自“../constants/cartConstants” 导出常量cartReducer=(状态={ 项目:[] },行动)=>{ 开关(动作类型){ 案例购物车添加项目: const item=action.payloa

我正在构建一个电子商务应用程序,并用下面的代码实现“添加到购物车”功能。 棘手的部分是,当我尝试向购物车添加一个已经添加了不同计数的项目时

所以在下面的代码中,我不是 能够理解“if(existItem){…}”部分。该块应该处理上述问题 案例

导入{
购物车添加商品,
}来自“../constants/cartConstants”
导出常量cartReducer=(状态={
项目:[]
},行动)=>{
开关(动作类型){
案例购物车添加项目:
const item=action.payload
const existItem=state.cartItems.map(x=>x.product==item.product)
如果(存在){
返回{
……国家,
cartItems:state.cartItems.map(x=>x.product==existItem.product?项:x)
}
}否则{
返回{
……国家,
cartItems:[…state.cartItems,item]
}
}
违约:
返回状态;
}
}

这不是一个好的测试。即使是空的也会是真的

const cartItems=[]
const existItem=cartItems.map(x=>x.product==item.product)

if(existItem)console.log(“Truthy”)
我了解您的想法,但我想了解原始代码,以及它是否有助于增加该产品的数量。简而言之,在if块之后cartItems的长度是否会改变?而且,当existItem为空时,它将为假。我不理解这个问题。无论购物车内容如何,您显示的代码都将始终执行if部分。您想的是
过滤器
,而不是
映射
@mplungjan是,但我的问题是。条件语句是否在if块内,更改cartItems数组的长度?当然。我没有看到
const item=action.payload
正在将项设置为cartItems-如果是这样的话