2013-09-26 38 views
0

我正在尋找在JavaScript中創建相當多的變量來存儲HTML5 Web存儲中的布爾變量。我想要的變量如下:HTML5 Web Storage創建變量

localStorage.title1 = '0'; 
localStorage.title2 = '0'; 
localStorage.title3 = '0'; 

等等......

我面對的是,我要創建這些變量localStorage.title570一路的問題。

我曾嘗試下面的代碼,而我是犯罪嫌疑人,以它的失敗:

function registerUser() { 
    for(i=1;i<571;i++) 
    { 
     var a = "title" + i; 
     localStorage.a = 0; 
    } 
} 

然而,這似乎並沒有工作。我正在尋找一種簡單的方法來創建這些570個變量,以便跟蹤用戶的進度。我已經看過PHP和MySQL,但我覺得這將有希望證明更容易。但是,如果不是,我將只使用PHP和MySQL。

+0

'localStorage的[α] = 0'。儘管JSON字符串化的數組可能更合適。 – DCoder

回答

2

使用這樣的事情,而不是:

for(i=1;i<571;i++) 
{ 
    localStorage['title' + i] = 0; 
} 

或更好:

for(i=1;i<571;i++){ 
    localStorage.setItem('title' + i, '0'); 
} 
+0

已經使用過'localStorage ['title'] [String(i)] = 0;'以保持一些可讀性。然而,在'div'中顯示這個問題有點麻煩,因爲我似乎無法檢查是否設置了'localStorage.registered'。這只是確保用戶以前訪問過,如果這樣加載他們的進度。 – user2195574

+0

@ user2195574只是意識到'localStorage'只能存儲* strings *,因此所有數組(1D,2D,...)和對象都需要首先被「字符串化」('JSON.stringify'),並且在讀取時解析回來來對象('JSON.parse')。使用'localStorage [] []'假定第一個[]是一個不與'localStorage'一起使用的數組,因此不起作用。 – K3N

0

稍微不同的解決辦法是使用而非索引的變量名的數組。 所以......

function registerUser() { 
    localStorage.title=[];  
    for(i=0;i<570;i++) 
    {   
     localStorage.title.push(0); 
    } 
} 

或者,如果你沒有需要initiaise值0,那麼這純粹是。

function registerUser() { 
    localStorage.title=[];    
} 

注意,現在的索引從0開始,而不是1。