如何动态创建JavaScript/jQuery对象?实现购物车商品添加逻辑
实现购物车商品添加逻辑
嘿,这个购物车的需求很典型,我直接给你捋个清晰的实现方案,附带细节解释:
首先我们可以封装一个专门的函数来处理商品添加逻辑,这样复用性更强,代码也更整洁。完整代码如下:
// 初始化购物车对象 var cart = {}; // 定义添加商品的函数 function addToCart(cart, productId) { // 检查目标商品ID是否已存在于购物车中 if (cart[productId]) { // 已存在则将对应数量加1 cart[productId]++; } else { // 不存在则新增键值对,初始数量设为1 cart[productId] = 1; } }
实际使用示例:
// 第一次添加ID为101的商品 addToCart(cart, 101); console.log(cart); // 输出: {101: 1} // 再次添加ID为101的商品(数量累加) addToCart(cart, 101); console.log(cart); // 输出: {101: 2} // 添加ID为202的全新商品 addToCart(cart, 202); console.log(cart); // 输出: {101: 2, 202: 1}
额外简洁写法(可选):
如果你喜欢更紧凑的代码,可以用一行逻辑实现相同功能(可读性稍弱,但原理一致):
function addToCart(cart, productId) { cart[productId] = (cart[productId] || 0) + 1; }
原理是:如果cart[productId]不存在,||会返回默认值0,加1后正好是初始数量1;如果已存在,就用当前值直接加1,效果和之前的判断写法完全一致。
内容的提问来源于stack exchange,提问作者Vinita
相关产品推荐
相关产品推荐

