我正在制作在线指南。它将调查用户,并根据他们的答案输出最适合他们需求的列表。
我即将收集大量的对象和属性列表,但在我花费太多时间之前,我想解决一些问题:
为了让您了解我的目标,以下是使用互动指南查找旅游目的地的示例:
用户的问题:
<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经验只能追溯到两周左右):
感谢您的时间。
答案 0 :(得分:3)
Arrays和Objects擅长存储此类数据。在JavaScript中, Array 只是特定类型的 Object 。
您应该考虑的是如何使数据尽可能“基本”;即如果答案只有两个答案,请考虑使用布尔true
或false
。如果更多,则下一站应为整数0
,1
,... In some cases in JavaScript integers work more efficiently than Boolean values。我想要传达的想法是,当你真正需要一个字符串时,通常更有效率地使用一个字符串,例如为了一个名字。
学习JavaScript的最佳资源之一可能是Codecademy,w3schools不是一个好资源。
答案 1 :(得分:1)
就像约瑟夫·西尔伯在评论中所说,你要将english
和beach
上的类型更改为布尔值,IE:true
或false.
至于存储你的对象,理论上我喜欢插件。看看www.knockoutjs.com上的教程。首先,他们将向您展示如何使用name
,equator
,english
和beach
属性创建对象。它还会向您展示很多很酷的事情,您可以使用这些数据来改善用户体验。
编辑:抱歉,要直接回答您的问题,请查看JSON。你已经走上正轨,我只是不确定你是如何生成阵列的。