gpt4 book ai didi

javascript - 如何从 localStorage 中删除对象或数组?

转载 作者:行者123 更新时间:2023-11-30 17:30:44 25 4
gpt4 key购买 nike

我知道使用 localStorage.removeItem(key) 我可以按键删除一个项目。如果我的 localStorage 是一维的(即 localStorage.search_near = 60654),那就没问题了。

但我有多层次的值(value)观。

我的 localStorage.storedAddresses 包含 json 对象:

[{
"storeNumber": "010517",
"zip": "20500",
"state": "DC",
"city": "WASHINGTON",
"address": "1600 Pennsylvania Ave",
"zone": null,
"address_two": null,
"name": "Second Choice",
"type": "P",
"dwellCode": "P",
"key": 4,
"defaultLocation": "N"
},
{
"storeNumber": "714389",
"zip": "60202",
"state": "IL",
"city": "EVANSTON",
"address": "818 Brown Ave",
"zone": null,
"address_two": null,
"name": "Test Storage",
"type": "P",
"dwellCode": "P",
"key": 3,
"defaultLocation": "N"
},
{
"storeNumber": "316740",
"zip": "70810",
"state": "LA",
"city": "BATON ROUGE",
"address": "9884 BLUEBONNET BLVD",
"zone": null,
"address_two": null,
"name": "Test2",
"type": "P",
"dwellCode": "P",
"key": 2,
"defaultLocation": "N"
}]

我将如何使用 localStorage.removeItem() 仅删除 storeNumber 为 714389 的对象?我必须 loop through localStorage.storedAddresses 并比较 storeNumber 值,然后在找到匹配项时使用 removeItem?还是有更直接的方法?

最佳答案

由于 localstorage 只能存储字符串,因此您必须使用 JSON.parse 解析该值并手动将其删除,然后重新插入。

var storedAddresses = JSON.parse(localStorage.storedAddresses); 
// storedAddresses is now an array of objects, not just a string

for ( var i = 0; i < storedAddresses.length; i++ ) {
if ( storedAddresses[i].storeNumber === '714389' ) {
// remove the object with storeNumber '714389' from the array
storedAddresses.splice(i,1);
}
}

// insert the new stringified array into LocalStorage
localStorage.storedAddresses = JSON.stringify(storedAddresses);

关于javascript - 如何从 localStorage 中删除对象或数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com