Javascript 从函数返回修改过的新对象

Javascript 从函数返回修改过的新对象,javascript,reactjs,redux,Javascript,Reactjs,Redux,修改并从函数返回新对象的最佳实践是什么 我编写了以下函数: export const addItemToCart = (currentCart, item) => { const { name, ...otherProps } = item; //if item exist in the cart if (currentCart[name]) { currentCart[name]["quantity"]++; return currentCart; }

修改并从函数返回新对象的最佳实践是什么

我编写了以下函数:

export const addItemToCart = (currentCart, item) => {
  const { name, ...otherProps } = item;

  //if item exist in the cart
  if (currentCart[name]) {
    currentCart[name]["quantity"]++;
    return currentCart;
  } 
  //if the item does not exist
  else
  {
    currentCart[name] = { ...otherProps };
    currentCart[name]["quantity"] = 1;
    return currentCart;
  }

// the function must return a new modified object on each call
};
显然,硬编码属性“quantity”和返回语句肯定可以改进

如何改进此函数以使其更具可读性?

更具“可读性”是基于意见的,无论哪种方式,您都可以尝试以下方法:

const currentCart={
您好:{
数量:1
}
};
常量addItemToCart=(当前购物车,商品)=>{
常量{name}=项;
//短路+返回最后一个值
const quantityPrev=currentCart[name]&¤tCart[name]。数量;
//布尔表达式上的Or运算符
常量=1+(quantityPrev | | 0);
//浅复制的销毁,动态密钥分配
返回{…currentCart,[名称]:{数量};
};
log(addItemToCart(currentCart,{name:'hello'}));
log(addItemToCart(currentCart,{name:'blazer'}))看起来更适合您