如何更新本地存储中数组的特定值?
How to update a specific value from the array in local storage?
本地存储中有一个字符串数组。我想从该数组中找到一个特定值,并只更新该特定值而不更改数组的其余部分。
function saveLocalChecked(task) {
let tasks = JSON.parse(localStorage.getItem('tasks'));
const taskIndex = task.children[1].innerText;
for(let i = 0; i < tasks.length; i++) {
if(tasks[i] === taskIndex) {
localStorage.setItem('tasks', JSON.stringify(tasks[i] + '*'));
}
}
}
因此,在此函数中,我通过从本地存储中提取项目来创建 tasks 数组。在 for 循环中,我遍历 tasks 数组以查找特定元素。现在,我想通过连接星号来更新该元素。但是在检查我的本地存储后,只有那个更新的元素,数组的其余部分就消失了。
如何解决这个问题?
那是因为您要用应用更改的单个元素替换该特定数组的整个存储。在您的 if 条件下更改您想要的项目,并将带有更新元素的整个数组发送回存储
function saveLocalChecked(task) {
let tasks = JSON.parse(localStorage.getItem('tasks'));
const taskIndex = task.children[1].innerText;
for(let i = 0; i < tasks.length; i++) {
if(tasks[i] === taskIndex) {
tasks[i] = tasks[i] + '*'
localStorage.setItem('tasks', JSON.stringify(tasks));
}
}
}
您随时可以从本地存储中检索数据,修改数据并再次存储。在您的情况下,您可以直接修改数组 tasks
,然后再将修改后的数组再次存储在本地存储中。
function saveLocalChecked(task) {
let tasks = JSON.parse(localStorage.getItem('tasks'));
const taskIndex = task.children[1].innerText;
//Modify elements
for(let i = 0; i < tasks.length; i++) {
if(tasks[i] === taskIndex) {
tasks[i]+='*';
}
}
//Store modified array in localstorage
localStorage.setItem('tasks', JSON.stringify(tasks));
}
本地存储中有一个字符串数组。我想从该数组中找到一个特定值,并只更新该特定值而不更改数组的其余部分。
function saveLocalChecked(task) {
let tasks = JSON.parse(localStorage.getItem('tasks'));
const taskIndex = task.children[1].innerText;
for(let i = 0; i < tasks.length; i++) {
if(tasks[i] === taskIndex) {
localStorage.setItem('tasks', JSON.stringify(tasks[i] + '*'));
}
}
}
因此,在此函数中,我通过从本地存储中提取项目来创建 tasks 数组。在 for 循环中,我遍历 tasks 数组以查找特定元素。现在,我想通过连接星号来更新该元素。但是在检查我的本地存储后,只有那个更新的元素,数组的其余部分就消失了。
如何解决这个问题?
那是因为您要用应用更改的单个元素替换该特定数组的整个存储。在您的 if 条件下更改您想要的项目,并将带有更新元素的整个数组发送回存储
function saveLocalChecked(task) {
let tasks = JSON.parse(localStorage.getItem('tasks'));
const taskIndex = task.children[1].innerText;
for(let i = 0; i < tasks.length; i++) {
if(tasks[i] === taskIndex) {
tasks[i] = tasks[i] + '*'
localStorage.setItem('tasks', JSON.stringify(tasks));
}
}
}
您随时可以从本地存储中检索数据,修改数据并再次存储。在您的情况下,您可以直接修改数组 tasks
,然后再将修改后的数组再次存储在本地存储中。
function saveLocalChecked(task) {
let tasks = JSON.parse(localStorage.getItem('tasks'));
const taskIndex = task.children[1].innerText;
//Modify elements
for(let i = 0; i < tasks.length; i++) {
if(tasks[i] === taskIndex) {
tasks[i]+='*';
}
}
//Store modified array in localstorage
localStorage.setItem('tasks', JSON.stringify(tasks));
}