2012-03-20 2 views
1

나는 때라도을 가지고있다로컬 스토리지 및 배열과 자바 스크립트 객체 저장 문제

patientDiseasesStorage = new Object() 
patientDiseasesStorage['p158246547'] = [1, 3, 8, 2, 5] //and many more of this with different p-number 

나는이 객체/배열 조합

localStorage.setItem('patientDiseasesStorage', JSON.stringify(patientDiseasesStorage)); 

을 저장 지금하려고하지만 난이 다시 읽으려고 할 때 localStorage에서 올바른 값을 가지고 있지 않습니다.

patientDiseasesStorage = JSON.parse(localStorage.getItem('patientDiseasesStorage')); 
patientDiseasesStorage['p158246547'] is now undefined and not the array. 

내가 뭘 잘못하고 있니?

+0

실제로'p158246547'는 변수입니까? 그렇다면 두 경우 모두 같은 값입니까? – pimvdb

+0

나는이 ID를 많이 가지고있다. 그리고 그 ID에 대한 배열을 저장하고 나중에 같은 ID의 – Brainiac

+0

을 가진 로컬 스토리지에서 배열을 가져 오려고합니다. 그러나 실제 ID는'p158246547' 변수에 저장되어 있습니까? 아니면 ID 자체가'p158246547'입니까? – pimvdb

답변

0

p158246547 경우 문자열이 아닌 변수 이름이고, 그것을 따옴표가 있어야합니다 당신은뿐만 아니라 로컬 스토리지에서 다시 당길 때

patientDiseasesStorage['p158246547'] = [1, 3, 8, 2, 5] //and many more of this with different p-number 

는 따옴표를 사용합니다.

+0

에 대한 따옴표를 수정했으며 그 값을 읽는 것이 효과적입니다. localStorage에서 객체를 복원 할 때만 더 이상 작동하지 않습니다. – Brainiac

0

어떤 브라우저를 사용하고 있습니까? 최신 Chrome이 저에게 효과적입니다.

var a = [1, 2,3] 
var obj = {'a': a} 
obj.a 
> [1, 2, 3] 
localStorage.setItem('obj', JSON.stringify(obj)) 
var obj2 = JSON.parse(localStorage.getItem('obj')) 
obj2.a 
> [1, 2, 3] 
+0

object.newname 구문을 사용하여 객체에 새 값을 할당 할 때 작동합니다. 그러나 새 값의 이름이 변수에 저장되면 객체에 객체를 어떻게 할당합니까? – Brainiac

+0

@ user1031990 : 문제가 표시되지 않습니다. 'var obj = new Object(); obj [ 'a'] = a' 그것은 모두 똑같이 작동합니다. 나는 여러분의 코드를 그대로 복사하여 붙여 넣었습니다. 문제가 해결 된 jsFiddle을 만들 수 있습니까? –

관련 문제