[英]increment key in sessionStorage
所以我在這里有這段代碼
var i = 0;
function contactUs(event){
event.preventDefault();
var lettre = new message();
sessionStorage.setItem("lettreNo" + i++, JSON.stringify(lettre));
$("form")[0].reset();
}
但是我知道這是錯誤的,因為密鑰不會增加,它將覆蓋該內容,如果我轉到另一個頁面並由於我的所有頁面都使用了此腳本而返回,我該如何解決呢?
只需將一個數組存儲在一個存儲屬性中:
const letters = JSON.parse(sessionStorage.getItem("letters")) || [];
letters.push(letter /*?*/);
sessionStorage.setItem("letters", JSON.stringify(letters));
或者,如果您真的想要這個復雜的關鍵事物,那么創建一個助手是有意義的:
function sessionArray(name) {
let length = +sessionStorage.getItem(name);
return {
get(key) {
return JSON.parse(sessionStorage.getItem(name + key));
},
set(key, value) {
if(key >= length) this.setLength(key + 1);
sessionStorage.setItem(name + key, JSON.stringify(value));
},
setLength(l) {
length = l;
sessionStorage.setItem(name, length);
},
push(value) {
this.set(length, value);
}
};
}
可用作:
const letters = sessionArray("letters");
letters.push({some: "thing"});
console.log(letters.get(0));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.