2017-06-30 15 views
0

每當我想從localStorage獲得數組時,它只會得到最後一個值。我認爲它將數組作爲一個對象來處理。我該如何解決?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

我照你說的但每次我把它備份到一個新的變種是數組並嘗試訪問任何東西,但第一點T時間給了我一個錯誤 – King23

+0

@ King23把你的代碼放到一個(codepen)www.codepen .io],所以我可以看到你在做什麼。只是告訴我你得到一個錯誤並不能讓我繼續下去。 –

+0

我可以,但可悲的是大部分都不是英文,我懷疑你能理解它。 所有我想要幾個對象存儲爲一個數組,我可以添加後來,我想對象,當我把它從地方,我得到了整個陣列 – King23

1

因爲你創建arrayOBJ陣列每次嘗試,以節省時間,你永遠只能去擁有它裏面一個項目。而當你將它保存到本地存儲時,你只是在寫任何已經存在的東西。相反,嘗試在保存函數外部定義arrayOBJ作爲全局變量。 或者,您可以使用localStorage.getItemJSON.parse在推送到localStorage之前獲取當前數組。