标签输入中按值递增的数组元素

问题描述

我在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值,而不是增加数组的新元素。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)