gpt4 book ai didi

javascript - 如何检查特定数组的值并递增或递减它?

转载 作者:行者123 更新时间:2023-12-02 22:54:01 25 4
gpt4 key购买 nike

我在本地存储中存储了一个数组中的购物篮。如何检查特定值是否增加或减少值

这是我的代码

我想检查 ProductID 是否存在,然后对其进行添加或减去,然后更新本地存储

var Basket = {
ProductID: product,
Quantity: quantity
};

//STEP 2 - create an array
//
var BasketContents = [];
if (localStorage.getItem('BasketContents') != null) {
BasketContents.push(JSON.parse(localStorage.getItem('BasketContents')));
}

//STEP 3 - create array of objects
BasketContents.push(Basket);
localStorage.setItem('BasketContents', JSON.stringify(BasketContents));

最佳答案

您可以通过保存一个对象(将此对象称为“全部”)对象来解决此问题,并将 ProductId 作为该对象(“全部对象”)中每个对象的键,或一个对象数组(每个篮子)。第二个(对象数组)感觉更直观,所以我会解释一下。

  1. 获取您需要的所有篮子并将它们放入这样的数组中:
const basket = [{productId: 2, quantity:5}, {productId: 6, quantity: 4}, {productId: 4, quantity: 18}, {productId: 3, quantity: 5}]
  • 将购物篮保存在 localStorage 中:```localStorage.setItem('basketContainer', JSON.stringify(basket))````

  • 每当您需要更新此列表/数组时,请从 localStorage 获取basketContainer 并循环遍历它。

  • const update = JSON.parse(localStorage.getItem('basketContainer'))
    update.forEach(x => {if (x.productId == 4) {x.quantity+=1}})

    此时您可以控制台更新,您将看到更改。

    请也应用相同的减量。

    您可以创建一个如下函数:

    const incrementDecrement = (list, action){ update.forEach(x => {if (x.productId == 4) {x.quantity`${action}`=1}})
    }
    // Where action is what determines if it is an increment(+) or decrement(-)
    ```

    4. Once you're done, you can save the data back in your localStorage with the same initial name as it just overwrites the initial one.

    something like this: ```localStorage.setItem('basketContainer', JSON.stringify(update))````

    Goodluck!
    By the way, you might want to read this: [stop_using_localStorage][1]


    [1]: https://dev.to/rdegges/please-stop-using-local-storage-1i04

    关于javascript - 如何检查特定数组的值并递增或递减它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070837/

    25 4 0
    文章推荐: javascript - Hasura Graphql 查询运算符的神秘定义
    文章推荐: javascript - 更改 objective-c 中 wkwebview 套件中
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com