【问题标题】:How to delete an element from an array with specific key from local Storage in ionic 4,angular 7如何从离子4,角度7中的本地存储中删除具有特定键的数组中的元素
【发布时间】:2019-05-13 16:39:20
【问题描述】:

我想从存储在本地存储中的数组中删除一个对象。使用 this.storage.remove(key);我只能删除整个数组。我发现的一个解决方案说我必须删除整个数组,然后保存没有我要删除的元素的新数组。这是唯一的方法吗?或者我可以用相同的密钥保存一个新数组,而旧的数组会被我覆盖吗?

让我们说一下我在本地存储中的内容。

数组的键:“My-Key”

数组的项:"[{"title":"item1","content":"content 11"}, {"title":"item2","content":"content 2"}]"

要删除的项目:{"title":"item2","content":"content 2"}

【问题讨论】:

  • 本地存储不支持部分更新。因此,删除单个元素的唯一方法是加载它,删除它并替换整个数组,如您已经找到的解决方案中所述。但是,要识别数组中的项目,您应该引入一个 id 字段。
  • @MarkusS。我明白了

标签: local-storage angular7 ionic4 ionic-storage


【解决方案1】:

这将解决您的问题:

function removeItem(item_title) {
localStorage.setItem(
    "My-Key",
    JSON.stringify(
        JSON.parse(localStorage.getItem("My-key")).filter(item => {
            return item.title !== item_title;
        })
    )
);
}

removeItem("item2");

另外,由于您正在使用 localStorage,我想向您推荐这个小型 JS 库,它可以让您更轻松地使用 localStorage 以及 sessionStorage 以及其他一些东西: https://github.com/tranclix/XJS

通过使用XJS,上面的代码会是这样的:

function removeItem(item_title) {
x.jls(
    "My-Key",
    x.jlg("My-key").filter(item => {
        return item.title !== item_title;
    })
);
}

removeItem("item2");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多