2013-01-10 40 views
2

我正在創建一個在線指南。它將調查用戶,並根據他們的答案輸出最適合他們需求的列表。Javascript - 高效的存儲/處理大型對象列表的方式

我即將組裝對象和屬性的大名單,但我花太多時間在這之前,我想解決一些顧慮:

爲了給你的是什麼我的想法要去的,這裏使用的交互式指南,找到旅遊目的地的一個例子:

問題用戶:

<form name="equator" action=""> 
<p>What side of the equator do you want to visit?</p> 
<input type="radio" name="equator" value="north">North<br /> 
<input type="radio" name="equator" value="south">South<br /> 
</form> 
<br /> 
<form name="english" action=""> 
<p>Does English need to be the first language?</p> 
<input type="radio" name="english" value="yes">Yes<br /> 
<input type="radio" name="english" value="no">No<br /> 
</form> 
<br /> 
<form name="beach" action=""> 
<p>Do you want a nearby beach?</p> 
<input type="radio" name="beach" value="yes">Yes<br /> 
<input type="radio" name="beach" value="maybe">Maybe<br /> 
<input type="radio" name="beach" value="no">No<br /> 
</form> 

以下是我計劃創建對象列表的方式:

destinations = [ 

{ 
    name: "Moscow", equator: "north", english: "no", beach: "no" 
}, 

{ 
    name: "Lima", equator: "south", english: "no", beach: "no" 
}, 

{ 
    name: "Nantucket", equator: "north", english: "yes", beach: "yes" 
}, 

] 

在我正在研究的項目中,對象列表實際上會以數百個數字表示,最多有二十個屬性。這就是說,這裏有我的顧慮(如果它會影響您的回答,我要指出,我的JavaScript的經驗只可以追溯到大約兩個星期):

  • 是存儲對象列表的有效方式我上面的例子中,考慮到它的潛在規模?如果沒有,你能提出更好的建議嗎?
  • 我目前使用Javascript的經驗包括通過「w3schools」教程的抨擊和創建迷你項目來感受語言...迄今爲止,我創建的每個腳本都是瞬間處理的。考慮到我的項目 - 如上所述 - 我是否應該關注任何性能點擊?

感謝您的時間。

+2

不應該'英國'和'海灘'是布爾人? –

+1

Off topic:請仔細閱讀[w3fools.com](http://w3fools.com/) –

+1

對於您提供/描述的對象類型,「數百」不是任何現代設備的結果編號。在效率之前擔心功能。 –

回答

3

ArraysObjects擅長存儲這樣的數據。在JavaScript中,數組只是對象的特定類型。

您應該考慮的是如何使數據儘可能「基本」;即如果答案只有兩個答案,請考慮使用布爾型truefalse。如果是更多,那麼下一站應該是整數0,1,.. In some cases in JavaScript integers work more efficiently than Boolean values。我試圖傳達的想法是,當你真正需要一個字符串時,只使用一個字符串通常會更高效。爲一個名字。

學習JavaScript的最佳資源之一可能是Codecademy,w3schools不是一個好的資源。

1

像約瑟夫·西爾伯說,在評論中,你會想改變englishbeach類型爲布爾,IE:truefalse.

用於存儲你的對象,我喜歡的插件,在理論上。看看www.knockoutjs.com上的教程。首先,他們將向您展示如何使用nameequator,englishbeach屬性創建對象。它還會告訴你很多很酷的事情,你可以用這些數據來改善用戶體驗。

編輯:對不起,要直接回答你的問題,看看JSON。你已經走上了正軌,我不確定你是如何生成陣列的。

+0

感謝您的快速反饋,夥計們。顯然,我有很多東西需要學習...聽起來不像我在這裏擔心的那麼多,除了我自己作爲noob「程序員」的缺點之外。再次感謝! –

+1

你很好@ user1965279。我最關心的帖子是沒有合適的用戶名。 – Billdr

+1

只是將我的用戶名更改爲更「適當」的東西...... :) –

相關問題