2016-07-25 98 views
0

我尝试在JavaScript中为krpano编写一个插件。如何将多个数据集保存到数组中?

我遇到的实际问题是以正确的方式存储几个数据集,以便以后可以轻松访问。

我有一些渲染的全景图像(项目之间的变化,1-10max),它可以有一些变化。其他地板,其他颜色的厨房,另一天的时间等都可能有变化。所以我事先不知道会有多少幅全景图像以及它们有多少变化。

我的想法是使用prompt();从用户那里获取所需的信息,并使用for循环创建所有需要的变量。

var panoCount = prompt("How many Panos do you have?"); 

    for (var i = 0; i < panoCount; i++) { 
     panoOptions[i+1] = prompt("How many Options do you have for " + (i+1) + ". pano?"); 
} 

比方说,我有2个不同的楼层,2种不同类型的家具和2个不同daytimes一个全景图像。我们总共获得8张照片(2 * 2 * 2)。

在这种情况下,我们得到:

How many Panos do you have? 
-> 1 (store to panoCount) 

How many Options do you have for 1. pano? 
-> 3 (floors, furniture, daytime) 

现在我想另一个prompt();在for循环得到问我有多少变体对于每个选项楼层(变种,家具变形,白天的变种)以及如何命名。 (白天,夜间f.ex.)

什么是最好的方式来存储所有的数据在JavaScript中。我应该在数组中使用数组还是有更好的解决方案?

对任务的进一步解释: 一般来说,我想为基于html/xml的pano查看器构建一个插件,它可以处理pano的版本。所以在pano上会有菜单,你可以f.ex.更换地板,它将加载新的全景图或将现有的全景图的网址更改为新的全景图。

+0

Q正在寻找“最好的方式来做x”的问题是基于观点的,因此不是关于计算器的话题。您能否重新说明要求?你对存储有什么期望?通过存储“正确的方式以便稍后可以轻松访问”的内容,您不清楚要实现的目标。 – k0pernikus

+0

感谢您的回答。这对我来说非常复杂,因为我不知道从哪里开始,以哪种方式最好地让所有跑步结束。我在上面对我的任务做了一些进一步的解释。 –

回答

0

没有比别人更好的方式来回答你的问题。这完全取决于您最终实施您的要求的方式。

但是,如果我能帮助的,我建议你使用对象的数组来存储你的数据,因为它很容易和全面的访问特定的数据块:

var myPanoSet = [ 
    { 
     panoName: "MyPano1", 
     options: { 
      floor: [...], 
      furniture: [...], 
      daytime: [...] 
     } 
    } 
}; 

然后你就可以与访问数据一个可读的查询,如:

myPanoSet[0].options['floor'].count; // How many floor I have for first pano. 

但是,一切都取决于你...

问候,