我正在尝试学习如何将localStorage
用于吃豆人游戏。
一个吃豆人的想法是吃一颗颗粒,将其从页面中删除,然后将其添加到localStorage
,以便刷新页面以使颗粒消失。
我的问题是只能从键列表中获取最后一个键ID,但是我想要的是一个数组,用于存储所有数字并将其全部取回。
我的代码如下:
for (var j in key_list) {
keyId = key_list[j].GetUserData().val;
stage.removeChild(pacdotsE[keyId]);
world.DestroyBody(key_list[j]);
//console.log(keyId);
localStorage.setItem("key_list",keyId);
}
key_list.length = 0;
function readStorage() {
console.log(localStorage.getItem("key_list"));
keyId = localStorage.getItem("key_list");
}
答案 0 :(得分:0)
问题在于,在localStorage中,您只编写了最新的keyId。
for (var j in key_list) {
...
localStorage.setItem("key_list",keyId);
}
您可以做的是像这样将数组保存到键的字符串中:
for (var j in key_list) {
...
keyIdArr.push(keyId)
localStorage.setItem("key_list",keyIdArr.toString());
}
答案 1 :(得分:0)
您必须将键提取到数组中,然后将其放入localStorage
中。
一种方法是:
localStorage.setItem('key_list', key_list.map(x => x.GetUserData().val))