javascript - 在本地存储中更改数组内部的值
问题描述
因此,我在本地存储中存储了一个名为“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。:)
解决方案
我想到了!
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))
}
})
这就是我所做的并且效果很好。
推荐阅读
- c# - .NET Core / JQuery.Load 带参数
- spring - 自动触发spring批处理作业
- spring-boot - 我可以将 Spring Boot 配置元数据生成为 .properties 文件吗
- ssis - 为什么 SSIS 包在验证步骤后停止并且不运行任务?
- powershell - 如何从 powershell 显示活动目录浏览器
- flutter - 如何在 Flutter 应用中打开 pdf、pptx、doc、docx 文件?
- python - 在 Django 中使用 python 读取 zip 文件夹中的文件时权限被拒绝错误
- javascript - 如何使用 Fabric js 以编程方式自由绘制?
- python - python中的正则表达式:将2个正则表达式组合为一个
- java - Spring Boot Security、JPA、WebMVC和Cache之间的Spring Boot循环依赖冲突