我有以下变量:
var board = {
mainBoard: null,
level: 'easy', // <- this one needs te be set using local storage
cells: {},
},
//etc
这里的级别预设为easy
。现在我想从本地存储中获取它。如果未使用本地存储设置/保存任何内容,则应将级别设置为 easy
。否则使用保存在本地存储中的级别。
但是如何做到这一点呢?
我尝试过的:
首先获取变量level(我不认为这是错误的?):
var level = {
if (localStorage.length != 0) {
level = localStorage.getItem('gamelevel');
} else {
level = 'easy';
}
;}
但我无法让它工作,因此本地存储的级别用于此问题顶部的变量中。执行此操作的正确方法是什么?
更多信息: 我这样设置关卡项目(这有效):
localStorage.setItem('gamelevel', board.level);
我使用:
localStorage.getItem('gamelevel');
所以问题;如何使用本地存储中的关卡(如果有的话)?
亲切的问候
最佳答案
如果您只在加载时访问 localStorage 一次(正如您应该的那样 - 重复查询是一个相对昂贵的功能),同时您正在建立您的 board 变量,您可以在对象中完成所有操作文字:
var board = {
mainBoard: null,
level: localStorage.getItem( 'gamelevel' ) || 'easy',
cells: {},
},
如果查询任何尚未设置的项目,localStorage.getItem
返回 null
- 因此如果已设置,board.level
将等于检索到的任何值,如果尚未设置,则 null
返回移动到 logical OR (||
) - handy for setting default values 之后的值.
使用 localStorage.length
还会阻止您存储除 gamelevel
之外的任何其他信息,并让您的默认设置正常工作。
关于javascript - 如何在我的变量中使用本地存储值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20318411/