在javascript中构建哈希表和完善哈希函数
我正在使用Google Maps API,我觉得有一种更好的方法可以搜索全景图像,而不是使用大量的在javascript中构建哈希表和完善哈希函数,javascript,google-maps,hash,perfect-hash,Javascript,Google Maps,Hash,Perfect Hash,我正在使用Google Maps API,我觉得有一种更好的方法可以搜索全景图像,而不是使用大量的开关语句。我认为使用外部哈希表会更有效,也更容易维护。每个图像都有一个唯一的panoID,我可以定义它。通过阅读散列表,我相信我说的是正确的,我可以制作一个表和完善的函数,以在固定时间内获得所需的数据。有没有关于如何构建这个的好资源?我对哈希一点经验都没有 我的逻辑是这样的:每个图像都作为sometext\u panoID.jpg保存在一个目录中,其中sometext是一个字符串,panoID是我想
开关语句。我认为使用外部哈希表会更有效,也更容易维护。每个图像都有一个唯一的panoID
,我可以定义它。通过阅读散列表,我相信我说的是正确的,我可以制作一个表和完善的函数,以在固定时间内获得所需的数据。有没有关于如何构建这个的好资源?我对哈希一点经验都没有
我的逻辑是这样的:每个图像都作为sometext\u panoID.jpg
保存在一个目录中,其中sometext
是一个字符串,panoID
是我想要的任何内容。在初始化上述switch语句中的数据时,所有的切换都是根据panoID完成的,其他元数据在那里访问。例如:
switch(panoID) {
case "test1":
links.push({
description : "TEST2",
pano : "test2",
heading : 70
});
break;
case "test2":
links.push({
description : "TEST1",
pano : "test1",
heading : 125
});
links.push({
description : "TEST3",
pano : "test3",
heading : 0
});
break;
case "test3":
links.push({
description : "TEST2",
pano : "test2",
heading : 0
});
break;
}
由于我将知道所有的panoID
s,并且在构建表后不需要排序、添加或以其他方式更改任何内容,因此我觉得有一种方法可以创建一个完美的哈希,但我真的不知道从何处开始。有什么建议吗?Thank’s a bunch in preadly实际上,简单的普通对象及其属性被实现为下面的哈希表。因此,无需阅读散列算法,您可以通过JS引擎完成这项工作:
var table = {
"test1": [
{
description : "TEST2",
pano : "test2",
heading : 70
}
],
"test2": [
{
description : "TEST1",
pano : "test1",
heading : 125
},
{
description : "TEST3",
pano : "test3",
heading : 0
}
],
"test3": [
{
description : "TEST2",
pano : "test2",
heading : 0
}
]
};
var itemstobepushed = table[panoID];
[].push.apply(links, itemstobepushed);
好。那当然很方便。我应该在OP中提到我对JS也是新手,所以你能把最后两行再扩展一下吗?如果我理解正确,var itemstobepush=table[panoID]
将在该panoid
处获取数据,并将其放入itemstobepush
,下一行将具体执行什么操作?它使用调用,并使用可变数量的参数。一个循环和链接.push(itemstobepush[i])
可能更方便…嗯,好的,我将进一步研究这个问题。