【发布时间】:2020-07-31 20:24:56
【问题描述】:
我正在创建一个购物车,如果我添加到购物车,数量应该添加到之前的数量。在我的情况下,它只设置为一个数量而不是添加。
这是我尝试过的代码:
var addNewItem = function (name, quantity, price) {
// retrieve it (Or create a blank array if there isn't any info saved yet),
var items = JSON.parse(localStorage.getItem('itemsInCart')) || [];
// add to it,
items.push({name: name, quantity: quantity, price: price});
//supposed to add to quantity
for (var item of items){
if(item.name === name){
quantity += item.quantity ;
console.log('true');
}
}
// then put it back.
localStorage.setItem('itemsInCart', JSON.stringify(items));
console.log(items);
}
【问题讨论】:
-
尝试打印
item.name和name -
如果没有项目,那么
for (var item of items)将不会迭代任何内容。将console.log()语句作为for循环的第一行并查看它是否打印。更好的是,使用浏览器的断点和调试功能。 -
哦,它给了我一个错误。它无法读取属性“名称”.. 哎呀
标签: javascript arrays json local-storage push