javascript 从localstorage中删除数组对象[重复]

j2cgzkjk  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(93)

此问题已在此处有答案

Remove array item from localstorage(4个答案)
昨天关门了。
在具有多个对象{}数组中,但我希望从本地存储中删除一个对象供我们选择

function del(e){
  let parenttag=e.parentElement.parentElement;
let td=parenttag.getElementsByTagName('td')[2];
let match=td.innerText;
// console.log(typeof match);
let studen=localStorage.getItem('student');
let student=JSON.parse(studen);

// for(let key in student){
//     if(student[key].rollnumber===match){
//     console.log(key + ":" +student[key]);
//     console.log(student[key]);
//     }

// }

student.filter((item)=>{
    if(item.rollnumber!==match){
        return false;
    }
    console.log(item);
    localStorage.removeItem(item);
    return item;

})

我尝试过滤功能,但一个唯一的对象是显示,我的目标,但它不能从本地存储删除。

afdcj2ne

afdcj2ne1#

removeItem()接受一个Key,如果你想移除数组中的一个元素,你需要再次使用localStorage.setItem()。“更新”项目。

function del(e) {
    // Get the rollnumber from the clicked row
    let parentTag = e.parentElement.parentElement;
    let td = parentTag.getElementsByTagName('td')[2];
    let match = td.innerText;

    // Get the students array from local storage and parse it
    let storedData = localStorage.getItem('student');
    if (!storedData) return;
    let studentsArray = JSON.parse(storedData);

    // Filter the students array to exclude the student with the matching rollnumber
    let updatedStudents = studentsArray.filter(item => item.rollnumber !== match);

    // Update local storage with the new array
    localStorage.setItem('student', JSON.stringify(updatedStudents));
}

这里的主要变化是,在过滤数组以排除具有匹配rollnumber的学生之后,我们然后使用新数组更新本地存储。setItem方法将用更新后的数组覆盖本地存储中以前的数组。

相关问题