gpt4 book ai didi

javascript - 本地存储 - 删除部分包含字符串的 key

转载 作者:行者123 更新时间:2023-11-30 08:20:22 24 4
gpt4 key购买 nike

我已经为我的用户提供了将某些信息保存到本地存储的选项。因此,当他们查看项目并点击保存时,我会根据项目 ID 创建 key 。以下是添加了 3 个项目的 key 示例:

saved-items: ["31919988", "2424334", "6436366"]

如果他们选择删除特定项目,我会从中拼接 ID,其中 cid 是项目 ID:

names = JSON.parse(localStorage.getItem('saved-items'));
var index = names.indexOf(cid);
if (index > -1) {
names.splice(index, 1);
}
localStorage.setItem("saved-items", JSON.stringify(names));

这一直很好用,但现在我有第二个 key ,当他们选择从第一个 key 中删除项目时,我需要删除第二个 key 。

saved-items-price: ["31919988_5.88", "2424334_12.02", "6436366_04.32"]

因此,如果用户选择删除“31919988”项,我会像上面那样从第一个键中删除它,但我还需要从第二个键中删除它,但是 indexOf 自然会返回 false,因为这不是完全匹配。

将两个键值匹配在一起并删除它们的最佳方法是什么?

最佳答案

为什么不只使用一个键呢?您可以为每个项目创建一个 Object,并使用 idprice 等属性来存储您的数据。

// define items
var item1 = {id: 31919988, price: 5.88};
var item2 = {id: 2424334, price: 12.02};
var item3 = {id: 6436366, price: 04.32};
...
// save all items in an array in localStorage
localStorage.setItem('saved-items', JSON.stringify([item1,item2,item3]));
...
// get items for localStorage
var items = JSON.parse(localStorage.getItem('saved-items'));
// get items except for the one(s) you want to remove
var newItems = items.filter(item => item.id != 31919988);
// save back to localStorage
localStorage.setItem('saved-items', JSON.stringify(newItems));

关于javascript - 本地存储 - 删除部分包含字符串的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54574084/

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