Javascript 如何在我的变量中使用本地存储值?
我有以下变量:Javascript 如何在我的变量中使用本地存储值?,javascript,html,local-storage,Javascript,Html,Local Storage,我有以下变量: var board = { mainBoard: null, level: 'easy', // <- this one needs te be set using local storage cells: {}, }, //etc 但是我不能让它工作,所以本地存储的级别被用在问题顶部的变量中。正确的方法是什么 更多信息: 我将级别项设置为如下(此项有效): 我通过以下方式获得: localStorage.getItem('gameleve
var board = {
mainBoard: null,
level: 'easy', // <- this one needs te be set using local storage
cells: {},
},
//etc
但是我不能让它工作,所以本地存储的级别被用在问题顶部的变量中。正确的方法是什么
更多信息:
我将级别项设置为如下(此项有效):
我通过以下方式获得:
localStorage.getItem('gamelevel');
所以问题就来了,;如何使用本地存储中的级别(如果有)
亲切问候将访问器和修改器分解到函数中,即:
function SetLevel(level) {
localStorage.setItem('gamelevel', board.level);
}
function GetLevel() {
if (localStorage.length != 0) {
level = localStorage.getItem('gamelevel');
} else {
level = 'easy';
}
}
如果您只在加载时访问一次localStorage(这是您应该做的——重复查询是一个相对昂贵的功能),同时您正在建立board变量,那么您可以在object literal中完成这一切:
var board = {
mainBoard: null,
level: localStorage.getItem( 'gamelevel' ) || 'easy',
cells: {},
},
localStorage.getItem
如果查询任何尚未设置的项目,则返回null
——因此,如果已设置,board.level
将等于检索到的任何值,如果未设置,null
返回将移到设置后的值
使用
localStorage.length
还会阻止您存储除gamelevel
以外的任何其他信息,并使默认设置正常工作。No;使用GetLevel()替换对level变量的引用,感谢您提供的帮助和有用的额外信息。这似乎奏效了,简单而优雅!
function SetLevel(level) {
localStorage.setItem('gamelevel', board.level);
}
function GetLevel() {
if (localStorage.length != 0) {
level = localStorage.getItem('gamelevel');
} else {
level = 'easy';
}
}
var board = {
mainBoard: null,
level: localStorage.getItem( 'gamelevel' ) || 'easy',
cells: {},
},