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 个不同的白天。我们总共得到 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 的全景查看器构建一个插件,而不是可以处理全景版本。所以全景中会有菜单,您可以在其中进行 f.ex。更改地板,它将加载新的全景或将现有全景的 url 更改为新的全景。

4

1 回答 1

0

没有比另一种更好的方法来回答您的问题了。这一切都取决于您最终实现需求的方式。

但是,如果我能提供帮助,我建议您使用对象数组来存储您的数据,因为访问特定数据块既简单又全面:

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

然后,您可以使用以下可读查询访问您的数据:

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

但这一切都取决于你...

问候,

于 2016-08-16T15:19:58.723 回答