您好,我知道有很多问题,但都不适合我的问题。
我在本地存储中有一个关键值,称为“ productsInCart”。此键值包含一个看起来像这样的json对象:
{"11011001":{"id":11011001,"name":"42 Cable","price":4,"inCart":1},"11011002":{"id":11011002,"name":"22 Cable","price":4,"inCart":1}}
现在我想删除/删除一个值,例如ID为'11011002'的值,我该怎么做?
到目前为止我尝试过的是:
var items = JSON.parse(localStorage.getItem("productsInCart"));
for (var i = 0; i < items.length; i++) {
var items = JSON.parse(items[i]);
if (items.item_id == item_id) {
items.splice(i, 1);
}
}
items = JSON.stringify(items);
localStorage.setItem("productsInCart", items);
我知道这行不通,因为它不是数组,但是也许有人对如何更改它有想法?
从localStorage中将其拔出后,您需要将其转换为数组,然后根据您的条件对其进行过滤:
例:
const storage = {
"11011001": {
"id": 11011001,
"name": "42 Cable",
"price": 4,
"inCart": 1
},
"11011002": {
"id": 11011002,
"name": "22 Cable",
"price": 4,
"inCart": 1
}
};
const list = Object.keys(storage).map(key => ({
[key]: storage[key]
}));
const filteredList = list.filter(item => Object.keys(item)[0] !== '11011002');
console.log(filteredList)
使用以下命令将新结构设置到localStorage中: localStorage.setItem("productsInCart", JSON.stringify(filteredList))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句