Javascript - 存储/使用我的大对象列表的有效方法

时间:2013-01-10 03:12:39

标签: javascript arrays list object

我正在制作在线指南。它将调查用户,并根据他们的答案输出最适合他们需求的列表。

我即将收集大量的对象和属性列表,但在我花费太多时间之前,我想解决一些问题:

为了让您了解我的目标,以下是使用互动指南查找旅游目的地的示例:

用户的问题:

<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"
},

]

在我正在进行的项目中,对象列表实际上会有数百个,最多有24个属性。也就是说,这是我的担忧(如果它影响了你的答案,我应该注意到我的Javascript经验只能追溯到两周左右):

  • 上面的示例是否是存储对象列表的有效方法,考虑到它的潜在大小?如果没有,你能提出更好的建议吗?
  • 到目前为止,我对Javascript的体验包括通过“w3schools”教程和创建迷你项目来感受语言...到目前为止,我创建的每个脚本都已立即处理。考虑到我的项目 - 如所概述的那样 - 我应该关注任何表现点击吗?

感谢您的时间。

2 个答案:

答案 0 :(得分:3)

ArraysObjects擅长存储此类数据。在JavaScript中, Array 只是特定类型的 Object

您应该考虑的是如何使数据尽可能“基本”;即如果答案只有两个答案,请考虑使用布尔truefalse。如果更多,则下一站应为整数01,... In some cases in JavaScript integers work more efficiently than Boolean values。我想要传达的想法是,当你真正需要一个字符串时,通常更有效率地使用一个字符串,例如为了一个名字。

学习JavaScript的最佳资源之一可能是Codecademy,w3schools不是一个好资源。

答案 1 :(得分:1)

就像约瑟夫·西尔伯在评论中所说,你要将englishbeach上的类型更改为布尔值,IE:truefalse.

至于存储你的对象,理论上我喜欢插件。看看www.knockoutjs.com上的教程。首先,他们将向您展示如何使用nameequatorenglishbeach属性创建对象。它还会向您展示很多很酷的事情,您可以使用这些数据来改善用户体验。

编辑:抱歉,要直接回答您的问题,请查看JSON。你已经走上正轨,我只是不确定你是如何生成阵列的。