2016-12-19 19 views
0

JavaScript新手。我正在創建一個分數表,將它們以JSON格式存儲在本地存儲中。我一直在確保在刷新頁面後我保存在本地存儲中的內容保留在那裏。如何避免在刷新時重置本地存儲中的JSON對象?

這是我如何創建JSON數組:

var top10Scorers = { 
    "top10Scorers": [ 
     {"position": '1', "username": 'blank', 
      "pointscore": '0', "date": 'blank' 
     } 
    ] 
}; 

localStorage.setItem("top10Scorers", JSON.stringify(top10Scorers)); 

我怎麼能改寫這一點,以便它不會重置每個頁面刷新時間是什麼在本地存儲?

解決方案:經過測試,以檢查在初始化變量之前密鑰是否不存在。

+0

它是否應該刷新?如果不是,那麼只需驗證變量中是否有內容 – Sebas

+0

我不明白你在想什麼,localStorage不會在頁面刷新時重置。 –

+0

非常感謝,解決了問題 –

回答

0

先嚐試從localStorage讀取數值。如果你沒有價值,只能覆蓋它。

+0

。我意識到如何解決我的問題與這個答案! –

3

檢查該值是否先設置,如果爲空,則可以進行設置。如果它不是null,那麼您之前已經設置了它。

if(localStorage.getItem("top10Scorers") === null){ 
    // its not set, set it 
} 
+0

謝謝,當我接近它的時候,我的解決方案和這個完全一樣。將它包裹起來,它的工作原理應該如此。問題是,爲什麼在這種情況下,比較器'==='首選'=='? –

+0

您使用'==='而不是'==',因爲如果您的top10Scorers值有意設置爲字符串'「null」'值? '=='將執行類型轉換,並將通過'if'檢查。 '==='將確保之前沒有設置該值。 –

相關問題