Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何/在何处用javascript保存复式表?_Javascript_Html_Canvas_Matrix_Html5 Canvas - Fatal编程技术网

如何/在何处用javascript保存复式表?

如何/在何处用javascript保存复式表?,javascript,html,canvas,matrix,html5-canvas,Javascript,Html,Canvas,Matrix,Html5 Canvas,我正在构建一个javascript-html5canvas侧滚游戏。地形基本上由一个复式表格组成,如下所示: -1 2 10 ----------------- 0 b a c ----------------- 2 a b a ----------------- 5 a a b ----------------- (列和行表示地图上的位置,a、b和c将说明该空间上的内容) 我不知道如何保存这个表,以便以后可以

我正在构建一个
javascript-html5
canvas
侧滚游戏。地形基本上由一个复式表格组成,如下所示:

      -1   2   10  
-----------------
0     b    a    c
-----------------
2     a    b    a
-----------------
5     a    a    b
-----------------
(列和行表示地图上的位置,
a
b
c
将说明该空间上的内容)


我不知道如何保存这个表,以便以后可以快速检索它的任何范围。我想不出任何术语可以帮助我搜索解决方案,因此任何信息和帮助标记问题都会有所帮助。

使用JSON保存此类数据:

var map = {
    '0': {
        '-1': 'b',
        '2': 'a',
        '10': 'c'
    },
    '2': {
        '-1': 'a',
        '2': 'b',
        '10': 'a'
    },
    '5': {
        '-1': 'a',
        '2': 'a',
        '10': 'b'
    }
};
然后像这样检索您的数据:
map['2']['-1']


您也可以这样更改它,也可以
map['2']['-1']='c'



如果您愿意,您可以编写一些函数来简化对该对象的操作

试试JSON:JavaScript对象表示法。幸运的是,您也可以用它来标记数组

我不知道您是否希望像“保存”这样存储数据,以便用户离开页面时可以从离开的位置继续,或者您是否希望将数据存储为地图的内部表示形式

'保存':
你可以使用sessionStorage,但我相信这是HTML5的一个特性(不确定)。无论如何,这里是它的caniuse页面:。
例如:

然后,稍后使用以下命令检索它:

var map = window.sessionStorage.getItem("map");
map = JSON.parse(map);
map[-1][0]; // Should be 'b'
缺点是您只能将字符串存储在sessionStorage中,但请看我如何使用
JSON.parse()
处理它。如果要对对象进行字符串化,可以使用
JSON.stringify()

内部代表:

yabol在这一点上击败了我,但我想提出同样的建议:

var map = {'-1': {0:b, 2:a, 5:a}, '2': {0:a, 2:b, 5:a}, '10':{0:c, 2:a, 5:b}};

这一次,它不是字符串。JS编译器会将它解析为一个对象(也许你已经知道了)。

你想把它保存在哪里?JSON可能会有帮助。
我不知道如何保存这个表
我不明白……你可以使用数组来保存你的矩阵。二维数组-数组数组-就足够了吗?@Liso22:添加了一些有用的标记你说的“双项”到底是什么意思?你是说二维的吗?不管怎样,除非我们对您正在做的事情有更多的了解——为什么要保存这个表,谁应该有权访问这个表,等等——如果您要处理多维数据,您可能需要开始学习数组。您必须记住在JSON对象中使用带负数的引号。没有引号的代码返回错误:
SyntaxError:Unexpected token-
真的吗?谢谢,我不知道。
var map = {'-1': {0:b, 2:a, 5:a}, '2': {0:a, 2:b, 5:a}, '10':{0:c, 2:a, 5:b}};