谷歌地图-用javascript构建一个哈希表和完美的哈希函数
google maps - Building a hash table and perfect hash function in javascript
我正在使用Google Maps API,觉得除了大量的switch
语句之外,还有更好的方法来搜索全景图像。我认为使用外部哈希表会更高效,也更容易维护。每个图像都有一个唯一的panoID
,我可以定义它。通过阅读哈希表,我相信我说的是正确的,我可以制作一个表和完美的函数来在恒定时间内获得我需要的数据。有关于如何构建这个的好资源吗?我对哈希一点经验都没有。
我的逻辑是这样的:每个图像都保存在一个目录中作为sometext_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
,并且在构建表后无需排序、添加或以其他方式更改任何内容,所以我觉得有一种方法可以生成完美的哈希,但我真的不知道从哪里开始。有什么建议吗?提前感谢
实际上,简单的普通对象及其属性在下面被实现为哈希表。因此,无需阅读哈希算法,您可以通过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);
相关文章:
- 如何在JavaScript中实现哈希表
- 用JavaScript中的循环传递哈希表/字典
- 将 Javascript 哈希表用于多个 If Thens
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 使用 JavaScript 中的对象的哈希表功能
- 用于 C# 的类似 V8 的哈希表
- 在 jquery 中从隐藏的哈希创建一个关联数组
- 如何在 JavaScript 中动态创建哈希表
- 如何使用 Node.JS 在哈希表中为每个键存储多个值
- 如何在 JavaScript 中实现哈希表
- 在引擎盖下,是Javascript对象哈希表
- 如何在java脚本中打印此哈希表数据
- 如何将 Python 字典转换为 JavaScript 哈希表
- 你如何观察 Knockout 中的 JavaScript 哈希表
- 已解决查询(关于哈希表)中的解决方案给了我 NaN
- 哈希表-给定密钥的哈希计算频率
- 为什么我的哈希表包含一个虚假的值
- 谷歌地图-用javascript构建一个哈希表和完美的哈希函数
- JavaScript的“对象”有多高效?有一个哈希表
- 如何创建一个Javascript哈希表/关联数组原型