[英]How to give javascript sessionStorage new name with loop
我試圖創建一個按鈕,該按鈕創建一些數據並將其保存在sessionStorage中。 我想給每個數據一個從0開始的鍵號。 第一次按下該按鈕時,其名稱/鍵為0。如果再次按下該按鈕,則新數據字符串/對象的名稱將為1,依此類推。 事實是我不想覆蓋sessionStorage中的現有數據,因此它應該檢查sessionStorage中是否有字符串/對象。 如果是,則給它起一個新名稱,如果否,則保存它。
在我的以下代碼中,cpData是我要存儲在sessionStorage中的數據:
for (var index = 0; index <= window.sessionStorage.key(index); index++) {
if (index > window.sessionStorage.key(index)) {
window.sessionStorage.setItem(index, cpData);
break;
}
};
我自己發現的。 如果需要這樣做,則此代碼應執行以下操作:
for (var index = 0; index >= window.sessionStorage.key(index); index++) {
if (window.sessionStorage.key(index) === null) {
window.sessionStorage.setItem(index, JSON.stringify(cpData));
break;
} else if (index > window.sessionStorage.key(index)) {
window.sessionStorage.setItem(index, JSON.stringify(cpData));
break;
}
};
這次它檢查是否window.sessionStorage.key(index)
不存在。 如果是這樣,它將創建一個數據字符串。 break;
語句立即停止循環。 現在,下次按下按鈕並開始循環時,可以看到已經有一個數據字符串,然后它將繼續循環直到index
值大於當前最大鍵值為止。 當它大於以前保存的數據時,將保存數據並break;
循環。
如果要自己檢查,請將其添加到同一腳本中:
var i = 0, oJson = {}, sKey;
for (i; sKey = window.sessionStorage.key(i); i++) {
oJson[sKey] = window.sessionStorage.getItem(sKey);
}
console.log(oJson);
這將在控制台中打印出所有sessionStorage數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.