繁体   English   中英

如何循环数组中的本地存储对象或转换 JSON 中的数据

[英]How to loop on local storage objects in array or convert data in JSON

我正在构建 ATM 项目并将用户数据存储在本地存储中,但之后我收集数据并在此循环以匹配现有用户或创建新用户,我可以获得的数据无法在 JSON 上转换

从本地存储获取数据后,我无法转换为 JSON 以循环数据。

function User(id,pin,amount) {
    this.id = id,
    this.pin = pin,
    this.amount = amount
}
var memory = [];

function loginSignup(){
    var id= document.querySelector('.card').value;
    var pin= document.querySelector('.pass').value;
    var user = new User(id,pin);
    user = JSON.stringify(user);
    memory.push(user);
    localStorage.setItem('user', memory);
    var localData = [];
    localData.push(localStorage.getItem('user'));
    console.log(localData);
}



for(var i=0; i<localstorage.length; i++){
   if(localstorage[i].id == id){
          only allow update        }
        else{ update new user}

像这样是为了理解我想循环输入用户输入的本地存储数据。

在将user数据保存到存储中时,您需要使用JSON.stringify

localStorage.setItem('user', JSON.stringify(memory));

现在,只要您需要,您就可以取回可解析和可遍历的数组:

var data = window.localStorage.getItem('user');
if (data) {
    data = JSON.parse(data);
    for (var i=0; i< data.length; i++) {
        if (JSON.parse(data[i]).id == id) { // see note below
           console.log("matched user", data[i])   
        }
        else {
            console.log("other user:", data[i])
        }
    }
}

笔记; 在树下,您还需要解析用户数据数组元素,例如。 JSON.parse(data[i]) 因为您在推入 memory 数组之前已经对其进行了字符串化。

演示https://jsfiddle.net/pg2bsLve/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM