如何将多个数据集保存到数组中?

时间:2016-07-25 15:13:23

标签: javascript arrays plugins prompt krpano

我尝试在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)

现在我希望for循环中的另一个prompt();被问到我为每个选项提供了多少变体(地板的变体,家具的变体,白天的变体)以及如何命名。 (白天,夜间f.ex。)

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

任务的进一步说明: 一般来说,我想为基于html / xml的全景查看器构建一个插件,而不是可以处理全景的版本。所以你可以在全景范围内找到菜单。更改地板,它将加载新的全景或将现有全景的URL更改为新的。

1 个答案:

答案 0 :(得分:0)

回答你的问题没有比另一个更好的方法了。这完全取决于您最终实现需求的方式。

但是,如果我可以提供帮助,我建议您使用对象数组来存储数据,因为它可以轻松,全面地访问特定数据:

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

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

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

但这完全取决于你......

此致