所以我这里有这个代码
var i = 0;
function contactUs(event){
event.preventDefault();
var lettre = new message();
sessionStorage.setItem("lettreNo" + i++, JSON.stringify(lettre));
$("form")[0].reset();
}
但是我知道这是错的,因为密钥不会增加,它会覆盖这个东西,如果我去另一个页面然后回来,因为我的所有页面都使用了这个脚本,怎么做我解决了这个问题?
答案 0 :(得分:0)
只需将数组存储在一个存储属性中:
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));