如何/在何处用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}};