2017-06-30 15 views
0

私はそれが私だけを取得localStorageから配列を取得するたびに、最後のvalue.Iは、オブジェクトとして配列を扱うと思うの最初のメンバーを保存します。これをどうやって解決するのですか?のlocalStorageは、アレイ

function saveData() { 


    if ($("#forma").valid() == true) { 

     var Name = document.getElementById("username").value; 
     var Year = document.getElementById("godinaupisa").value; 
     var Index1 = document.getElementById("brindeksa").value; 
     console.log(Name); 
     var EMial = document.getElementById("email").value; 
     var OBJ = { NAME: "JOHN DOE", YEAR: "18", INDEX1: "1", EMAIL: "@" }; 


     OBJ.NAME = Ime1; 
     OBJ.YEAR = Year; 
     OBJ.INDEX1 = Index1; 
     OBJ.EMAIL = EMial; 

     var arrayOBJ = []; 
     arrayOBJ.push(OBJ); 

     localStorage.setItem("ARRAY", JSON.stringify(arrayOBJ)); 
     alert("saved"); 

     $("#forma").resetForm; 

    }; 
} 
+0

末尾の括弧がありません。 –

答えて

2

だから、あなたはちょうどあなたがそれを渡す何に設定しますsetItemを呼んでいます。私はあなたが行きたいものは、現在の値を読み取ってそれに追加し、新しい値をそれに設定することだと思います。

var data = localStorage.getItem("ARRAY"); 
data = JSON.parse(data); 
data.push(OBJ); 
localStorage.setItem("ARRAY", data); 
+0

あなたが言ったように、私はそれを配列である新しいvarに呼び出すたびに何かにアクセスしようとしましたが、最初のスポットtはエラーを返します – King23

+0

@ King23はあなたのコードを(codepen)[www.codepen .io]だから私はあなたがしていることを見ることができます。あなたがエラーを起こしていると私に伝えるだけでは、私にはあまり進んでいません。 –

+0

私はできますが、悲しいことにほとんどが英語ではありません。あなたがそれを理解できるかどうかは疑問です。 すべて私は複数のオブジェクトを1つの配列として格納したいので、後でオブジェクトを追加できます。ローカルから呼び出して、配列全体を取得します。 – King23

1

保存しようとするたびにarrayOBJ配列を作成するため、その中には1つの項目しか存在しません。そして、あなたがそれをlocalstorageに保存すると、すでにそこにあったものを上書きするだけです。代わりに、save関数の外にarrayOBJをグローバル変数として定義してみてください。 または、localStorage.getItemJSON.parseを使用して、ローカルストレージにある現在の配列を取得してから、それをプッシュすることができます。