问题描述
我在JavaScript中有一个代码,我想通过添加用户输入的标签来增加商品的价值。我创建了一个输入标签和按钮来推送值。我有五个具有唯一ID的项目。问题是,当我从用户输入函数添加值时,无法推入并合并现有值,而不是创建数组的新部分。
add.addEventListener('click',function() {
let basket = JSON.parse(localStorage.getItem('basket')); // Parse data from localstorage
let elementimageUrl = element.imageUrl; // element.imageUrl is a part of backend data received from JSON file
let elementId = element._id; // element._id is a part of backend data received from JSON file
let elementName = element.name; // element.name is a part of backend data received from JSON file
let elementPrice = element.price; // element.price is a part of backend data received from JSON file
let add2 = document.getElementById("userinput").value; // add2 varriable get value from label
let yInt = Number.parseInt(add2); // parse label value to Integer number
console.log(yInt); // console log to check number
let elementQuantity = yInt; // assign label value to elementQuantity
console.log(elementQuantity);
if (!basket) {
basket = [];
}
// find the index of the item if already in basket
const itemIndexInBasket = basket.findIndex(basketEntry => basketEntry.elementId === elementId);
if (itemIndexInBasket !== -1) {
basket[itemIndexInBasket].elementQuantity++;
} else {
basket.push({elementId,elementName,elementPrice,elementQuantity,elementimageUrl}); // Push not existing data to localstorage
}
localStorage.setItem('basket',JSON.stringify(basket));
})
这是按钮将所有值推入数组的方式。我希望增加现有的elementQuantity值,而不是增加数组的新元素。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)