2010-03-08 37 views
0

我有很長的字符串數組,它看起來像商店的長字符串到MULT陣列

var callinfo_data=new Array(
"1300 135 604#<b>Monday - Friday: 9:00 a.m. to 5:30 p.m. AEST</b>", //Australia 
.. 
"0844000040#<b>lunedì-venerdì ore 10:00 - 17:00 CET</b>", //Switzerland (it) 
"212 356 9707#<b>Hafta içi her gün: 10:00 - 18:00</b>", //Turkey 
"08451610009#<b>Monday - Friday: 9:00 a.m. to 6:30 p.m. GMT</b>", //UK 
"866 486 6866#<b>Monday - Friday: 7:00 a.m. to 11:00 p.m. EST</b><br />Saturday: 9:00 a.m. to 8:00 p.m. EST", //USA 
"+31208501004#<b>Monday - Friday: 9:00 a.m. to 7:30 p.m. GMT+1</b>", //other countries 
" # "); 

正如你看到的,它的聯繫電話號碼和開放時間。我可以使用拆分將它們分隔成 info = callinfo_data [n] .split(「#」); 兩部分, ,然後我可以代表他們在HTML像

"<div id ='phoneNumber'>"+info[0]+"</div><div id='openTime'>"+info[1]+"</div>" 

但我的顯示電話號碼功能,將讀取cookie變量,然後選擇合適的聯繫人信息顯示。

一樣,

 phone=callinfo_data[2].split("#"); 
if (locale == 'UK')   details = phone[0]+ build_dropdown(locale); 
    else if (locale == 'fr') details = 'French Contact Details<br>'+build_dropdown(locale); 
    else if (locale == 'be') details = 'Belgian Contact Details<br>'+ build_dropdown(locale); 
    else details = 'Unknown Contact Detail'; 
    writeContactInfo(details); 

我的問題是如何建立一個函數來加載基於我的cookie變量,英國很巧妙地電話號碼和時間。

我可以硬編碼一切,但我認爲這太愚蠢了。

我必須寫很長的代碼,如:

phone1= allinfo_data[0].split("#"); 

phone1= allinfo_data[1].split("#"); 
... 

其次的問題,我怎麼可以加載這個長數組到容易獲得多陣列?

謝謝

問候, 清

回答

0

而不是使用字符串和分裂他們你爲什麼不使用對象文本來存儲你的數據?

就像這個...

{ 
    "phone" : "111-111-1111", 
    "hours" : "Monday - Friday: 9:00 a.m. to 7:30 p.m. GMT+1" 
} 

你可以把一個數組裏面的這些對象:

var locales = { 
    "UK" : { 
    "details": "UK Contact Info", 
    "phone" : "111-111-1111", 
    "hours" : "Monday - Friday: 9:00 a.m. to 7:30 p.m. GMT+1" 
}, 
    "DE": { 
    "details": "DE Contact Info", 
    "phone" : "111-111-1111", 
    "hours" : "Monday - Friday: 9:00 a.m. to 7:30 p.m. GMT+1" 
}}; 

然後,您可以訪問他們像這樣:

locales["UK"]["phone"]; 

function buildTimeInfo(){ 
    var newDiv = document.createElement("div"); 
    var html = "<h2>" + locales[locationFromCookie]["details"] + "</h2>"; 
    html += "<h3>" + locales[locationFromCookie]["hours"] + "</h3>"; 
    html += "<p>" + locales[locationFromCookie]["phone"] + "</p>"; 
    newDiv.innerHTML = html; 
    document.body.appendChild(newDiv); 
};