【问题标题】:how can i delete something from a object in localstorge in javascripts?如何从 javascript 的 localstorage 中的对象中删除某些内容?
【发布时间】:2021-10-30 11:38:57
【问题描述】:

我在网上商店工作。现在一切都很好,但我想做一些事情来从我的购物车中删除一个产品。这是它的代码你能帮我吗?

function displaycart() {
        let cartitems = localStorage.getItem("productsincart");
        cartitems = JSON.parse(cartitems);
        let productcontainer = document.querySelector(".products-container");
        let cartcost = localStorage.getItem("totalcost");
        if (cartitems && productcontainer ) {
            Object.values(cartitems).map(item => {
                productcontainer.innerHTML += '<tr><td><button class="bd">close</buttton></td><td>'+ item.nam + '</td><td>' + item.price * item.incart + '</td><td>' + item.incart + '<td>افزودن</td></tr>'
            });

            let productmab = document.querySelector(".mabb");
            productmab.innerHTML += cartcost;
            
        }
    }

    let bv = document.querySelector(".bv");
    let bd = document.querySelectorAll(".bd")
    let cc = localStorage.getItem("productsincart")
    let cartiteme = JSON.parse(localStorage.getItem("productsincart"))
    bv.addEventListener("click" , () => {
        localStorage.clear()
        window.alert("refresh the page")
    })
    displaycart()

这里是本地存储...

how can i delete one of them in productsincart ?

【问题讨论】:

  • 一种方法是使用npm i --save uuid 为他们提供ID。然后通过创建一个不包含具有指定 id 的对象的新数组来删除该条目,然后用新的本地存储数组替换以前的本地存储数组。您可以像这样过滤:const newLocalStorage = JSON.parse(localStorage.getItem("productsincart").filter((product) =&gt; product.id !== id);。然后将本地存储设置为newLocalStorage

标签: javascript arrays


【解决方案1】:

在您的情况下,这可能是一个有用的功能:

function removeItem(index) {
  let cartitems = JSON.parse(localStorage.getItem("productsincart"));
  cartitems.splice(index, 1);
  localStorage.setItem('productsincart', JSON.stringify(cartitems));
}

【讨论】:

    【解决方案2】:

    一种方法是给他们 id。您可以使用npm i --save uuid 来获取随机ID。

    您的本地存储应如下所示:

    [{"id": "342324", "product": "item"}, /* then repeated for every item */]

    然后通过创建一个不包含具有指定 id 的对象的新数组来删除该条目,然后用新的本地存储数组替换之前的本地存储数组。你可以这样过滤:

    const newLocalStorage = JSON.parse(localStorage.getItem("productsincart").filter((product) =&gt; product.id !== id);.

    然后将本地存储设置为newLocalStorage

    【讨论】:

    • 不客气。您能否将我的答案标记为正确答案,以便我获得声誉?提前谢谢你。
    【解决方案3】:

    cartitems 是一个数组,整个数组存储在本地存储中。您只需从数组中删除所需的项目,然后将其写回本地存储,这将覆盖之前的值。

    【讨论】:

      猜你喜欢
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多