簡體   English   中英

如何使用循環為JavaScript SessionStorage命名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM