Javascript 如何循环数组中的本地存储对象或转换JSON中的数据
我正在构建ATM项目,并将用户数据存储在本地存储器中,但之后我收集数据并在此基础上循环以匹配现有用户或创建新用户。我可以获得的数据无法在JSON上转换 从本地存储获取数据后,我无法转换为JSON来循环数据Javascript 如何循环数组中的本地存储对象或转换JSON中的数据,javascript,loops,Javascript,Loops,我正在构建ATM项目,并将用户数据存储在本地存储器中,但之后我收集数据并在此基础上循环以匹配现有用户或创建新用户。我可以获得的数据无法在JSON上转换 从本地存储获取数据后,我无法转换为JSON来循环数据 function User(id,pin,amount) { this.id = id, this.pin = pin, this.amount = amount } var memory = []; function loginSignup(){ var i
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}
功能用户(id、pin、金额){
this.id=id,
this.pin=pin,
这个。金额=金额
}
变量内存=[];
函数loginSignup(){
var id=document.querySelector('.card')。值;
var pin=document.querySelector('.pass').value;
var user=新用户(id、pin);
user=JSON.stringify(用户);
内存推送(用户);
setItem('user',memory);
var localData=[];
localData.push(localStorage.getItem('user'));
log(localData);
}
对于(var i=0;i您需要在将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])
}
}
}
var data=window.localStorage.getItem('user');
如果(数据){
data=JSON.parse(数据);
对于(变量i=0;i
注意;在树下,您还需要解析用户数据数组元素,例如JSON.parse(data[i]),因为您在将其放入内存数组之前已经对其进行了字符串化
演示在将用户
数据保存到存储器中时,需要使用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])
}
}
}
var data=window.localStorage.getItem('user');
如果(数据){
data=JSON.parse(数据);
对于(变量i=0;i
注意;在树下,您还需要解析用户数据数组元素,例如JSON.parse(data[i]),因为您在将其放入内存数组之前已经对其进行了字符串化
DEMOconsole.log(localData);
的输出是什么?如果它看起来像有效的JSON,您应该能够使用JSON.parse()
将其转换为objecct。是的,但是当我使用JSON.parse()时它给出了错误。然后请告诉我们您收到的错误以及localData
的内容是什么样的-我们应该如何帮助您?:)console.log(localData)的输出是字符串格式的。[“{”id:“1111111111111111”,“pin:“1234”},{”id:“2222…n:“1234”},{”id:“55555555”,“pin:“1234”}]0:“{”id:”1111111111111111111,pin:“1234”},{“id:“2222222222222”,“pin:“1234”},{“id:“3333333333333”,“pin:“1234”},{“id:“44444444444444”,“pin:“1234”},{“id:“555555555555555555”,“pin:“1234”}]我从本地存储中获取了这些类型的数据,它无法解析并给出错误。console.log(localData)的输出是什么代码>?如果它看起来像是有效的JSON,您应该能够使用JSON.parse()
,将其转换为objecct。是的,但当我执行JSON.parse()时,它会给出错误。然后请向我们显示您收到的错误以及localData
的内容是什么样的-否则我们应该如何帮助您?:)“console.log(localData)”的输出是字符串格式的。[“{”id:“1111111111111111”,“pin:“1234”},{”id:“2222…n:“1234”},{”id:“555555555555”,“pin:“1234”}]0:“{”id:“1111111111111111”,“pin:“1234”},{”id:“22222222222222”,“pin:“1234”},{”id:“3333”,“pin:“1234”:“1234”},{”id:“1234”;“443333”,“pin:“1234”{”445555555544445544},{“,“pin”:“1234”}“]我从本地存储中获取了这些类型的数据,如果给出错误,它将无法解析。