我尝试在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更改为新的。
答案 0 :(得分:0)
回答你的问题没有比另一个更好的方法了。这完全取决于您最终实现需求的方式。
但是,如果我可以提供帮助,我建议您使用对象数组来存储数据,因为它可以轻松,全面地访问特定数据:
var myPanoSet = [
{
panoName: "MyPano1",
options: {
floor: [...],
furniture: [...],
daytime: [...]
}
}
};
然后,您可以使用以下可读查询来访问您的数据:
myPanoSet[0].options['floor'].count; // How many floor I have for first pano.
但这完全取决于你......
此致