javascript - 如何在我的变量中使用本地存储值?

标签 javascript html local-storage

我有以下变量:

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/

相关文章:

javascript - 如何使用 JavaScript 从文本框控件中获取选定的文本

javascript - 在 React 中刷新页面后如何使用 localStorage 来维护状态

javascript - 从本地存储获取复选框状态

javascript - Opera localStorage 忽略我的存在检查

javascript iframe "top."多个 div?

javascript - 如何在android上制作模糊图像? react native

javascript - Sprite 动画: function not recognized and semi-colon expected in for-loop

javascript - 如何删除 Facebook 分享按钮上的分享数量

html - 边框仅在全宽背景的一部分上

html - CSS: 可以 object-fit:cover,有一个起始位置