3

我正在创建一个在线指南。它将调查用户,并根据他们的回答,输出最适合他们需求的列表。

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

为了让您了解我的目标,这里有一个使用交互式指南查找旅行目的地的示例:

给用户的问题:

<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”教程和创建迷你项目以感受该语言......到目前为止,我创建的每个脚本都已即时处理。考虑到我的项目(如概述),我是否应该担心任何性能损失?

谢谢你的时间。

4

2 回答 2

3

数组对象擅长存储这样的数据。在 JavaScript 中, Array只是Object的一种特定类型。

您应该考虑的是如何使数据尽可能“基本”;即,如果一个答案只有两个答案,请考虑使用布尔值truefalse. 如果它更多,那么下一站应该是整数0, 1, ..在 JavaScript 中的某些情况下,整数比布尔值更有效。我试图传达的想法是,通常只在您实际需要字符串时才使用字符串更有效,例如名称。

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

于 2013-01-10T03:24:01.503 回答
1

就像 Joseph Silber 在评论中所说的那样,您需要将类型更改为布尔值,即 IE english:或beachtruefalse.

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

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

于 2013-01-10T03:19:49.007 回答