2012-12-08 16 views
0

我正在構建一個javascript - html5canvas側面滾動遊戲。地形主要由在這樣一個雙列表:如何/在哪裏保存在javascript中的雙重錄入表?

 -1 2 10 
----------------- 
0  b a c 
----------------- 
2  a b a 
----------------- 
5  a a b 
----------------- 

(列和行代表地圖和abc將陳述什麼是對空間上的位置)。

我不知道如何保存這張表,所以我可以在以後快速找回它的任何範圍。我想不出任何可以幫助我搜索解決方案的術語,所以任何信息和幫助標記問題都會有所幫助。

+0

你想把它保存在哪裏? JSON可能會有所幫助。 –

+1

'我不知道如何保存這張表格',我沒有理解......你可以使用數組來保存矩陣。 –

+0

二維數組 - 數組數組 - 是否足夠? –

回答

0

使用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'

如果您喜歡,可以使用某些可輕鬆操作此對象的函數。

0

試試JSON:JavaScript Object Notation。幸運的是,您也可以使用它來指定數組。

我不知道你是否想要存儲數據,比如「保存」 - 這樣,如果用戶離開頁面,他可以從他離開的地方繼續 - 或者如果要將數據存儲爲內部表示的地圖。

'保存':
您可以使用sessionStorage,但我相信這是一個HTML5功能(不確定)。無論如何,這裏是它的caniuse頁面:http://caniuse.com/#search=sessionStorage
例子:

window.sessionStorage.setItem("map", "{'-1': {0:b, 2:a, 5:a}, '2': {0:a, 2:b, 5:a}, '10':{0:c, 2:a, 5:b}}"); 

再後來與檢索:

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編譯器解析爲一個對象(也許你已經知道了)。

+0

您必須記住在JSON對象中使用帶負數的引號。沒有引號的代碼會返回錯誤:'SyntaxError:意外的代幣--' –

+0

真的嗎?謝謝,不知道。 – 11684

+0

我編輯後更好嗎? @yabol – 11684