我在localstorage中存储了一个数组(解析为json)。 我将它恢复为一个对象,从中删除了一些项目,我需要使用本地存储中的新值更新密钥。
hide
现在,当我从本地存储中删除问题密钥时,整个问题数组将被删除,但是,我只需要删除传递的特定问题数组。
答案 0 :(得分:4)
不要删除密钥,只需使用新的问题数组再次设置它:
questions.splice(index, 1);
localStorage.setItem('questions', JSON.stringify(questions));
答案 1 :(得分:2)
请勿使用removeItem()
,因为名称会从localStorage
中移除整个项目。只需执行另一个setItem()
来覆盖旧数据。
你也这样做:
questions = questions.splice(index, 1);
这将从数组中删除元素并返回它们。然后questions
将是已删除的元素,而不是您修改过的数组。根据你的问题,你只需要修改过的数组。所以只需执行splice()
没有作业
所以你的结束代码是:
questions.splice(index, 1);
localStorage.setItem('questions',JSON.stringify(questions));
答案 2 :(得分:0)
您只需要重用您之前拥有的 localStorage。它会自动更新之前存储的。在删除方法之后立即使用它。
localStorage.setItem('questions', JSON.stringify(questions));