0

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

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

数组的键:“My-Key”

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

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

4

1 回答 1

0

这将解决您的问题:

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");
于 2019-05-13T08:31:00.860 回答