Fad*_*hab 2 javascript local-storage
我在本地存储中存储了一个数组(将其解析为json)。我把它放回到一个对象中,从其中删除了一些项目,我需要用本地存储中的新值更新密钥。
var counter = [0,1,2];
var count = counter[0];
var questions = localStorage.getItem('questions');///questions had been stored in local storage with another function
console.log(questions);
questions = $.parseJSON(questions);
if (questions != 0){
$('.question').html(questions[count]['question']);
var options = (questions[count]['options']);
options.forEach(function (item) {
$('.options').html(item);
});
var index = counter.indexOf(1);
questions = questions.splice(index, 1);
console.log(questions);
localStorage.removeItem('questions);
counter = counter.splice(index, 0);
Run Code Online (Sandbox Code Playgroud)
现在,当我从本地存储中删除问题键时,整个问题数组将被删除,但是,我只需要删除传递的特定问题数组即可。
小智 6
无需删除键,只需使用新的questions数组再次设置即可:
questions.splice(index, 1);
localStorage.setItem('questions', JSON.stringify(questions));
Run Code Online (Sandbox Code Playgroud)
不要使用removeItem()它,因为名称表示会从 中删除整个项目localStorage。只需再做一次setItem()即可覆盖旧数据。
你也这样做:
questions = questions.splice(index, 1);
Run Code Online (Sandbox Code Playgroud)
这将从数组中删除元素并返回它们。questions然后将是删除的元素而不是修改后的数组。根据你的问题,你只想要修改后的数组。所以只做splice()没有作业的事情
所以你的最终代码将是:
questions.splice(index, 1);
localStorage.setItem('questions',JSON.stringify(questions));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9431 次 |
| 最近记录: |