首页 > 解决方案 > 在本地存储中更改数组内部的值

问题描述

因此,我在本地存储中存储了一个名为“users”的数组,其中包含“email”、“id”、“img”、“pass”、“user”和“usertype”字段。

我想要一个用户可以更改他的电子邮件的字段,但我不能这样做。我试过了,但没有用:

let loggedID = JSON.parse(localStorage.getItem("loggedID"))

changeEmailLink.addEventListener('click', function () {
    users = JSON.parse(localStorage.getItem("users"))
    users[loggedID].email = document.getElementById('changeEmail').value

})

我认为我唯一缺少的是使用“localstorage.setItem()”来应用更改,但如果我做得不对,恐怕我会删除我已经存储的用户记录。

任何帮助将不胜感激。谢谢!

PS我确信“loggedID”正在工作,因为我已经在这个项目中多次使用过它。也请不要 jquery,只有香草 JS。:)

标签: javascript

解决方案


我想到了!

changeEmailLink.addEventListener('click', function () {
    users = JSON.parse(localStorage.getItem("users"))
    let usersUpd = users

    for (i = 0; i < users.length; i++) {
        if (users[i].email == users[loggedID].email) {
            usersUpd[i].email = document.getElementById('changeEmail').value

        } else {

            usersUpd[i] = users[i]
        }
        localStorage.setItem("users", JSON.stringify(usersUpd))
    }

})

这就是我所做的并且效果很好。


推荐阅读