更新:让我详细说明关闭者:我要求提供例行公事的名称。 我试图尊重Principle of least astonishment,命名非常重要。
此外:如果这是一个很常见的例程,而且我的猜测是, 。当我知道这个名字的时候,我只想说一件事,谷歌就可以了。
我需要在javascript中'扭转'一个哈希,如下所示。 (值始终是数组)。函数turnaround()
不是问题(我已经写过了),但名字是。
我在这里做了什么,或者以不同的方式将这个例程命名为什么?
如果它不是一个众所周知的算法,我应该如何命名它以便名称定义它正在做什么?
true == ( (h2 == turnaround(h1)) && (h1 == turnaround(h2))
h1 : {
a : [ 2, 3 ],
b : [ 3, 4 ],
c : [ 2, 4 ],
d : [ 1, 5 ] }
h2 : {
1 : ["d"],
2 : ["a","c"],
3 : ["a","b"],
4 : ["b","c"],
5 : ["d"] }
答案 0 :(得分:2)
通常,如果您有一个将键与值列表相关联的映射,则从值到键列表的相应映射称为 inverted index 。由于您正在为特定映射构建倒排索引,因此您可以将函数调用为createInvertedIndex
或invertIndex
的效果。
答案 1 :(得分:1)
你的功能是turnAround(turnAround())= Identity。
turnAround = turnAround ^ -1
当应用turnAround(h)时,你会发现唯一元素h ^ -1,这样h = turnAround(h ^ -1)
因此你反转了h。 (inverse function)您可以将其称为 inverseHashFunction ?
我认为这很明确,
否则 reciprocalHash ? reciprocalBijectionHash ?等...
答案 2 :(得分:1)
如果您愿意,您可以将哈希视为描述关系R,根据x R y的定义,当且仅当y在h1[x]
中时。
然后,turnaround
函数的返回值以相同的方式描述反向关系:根据定义y R -1 x当且仅当x R y时。当且仅当x在turnaround(h1)[y]
中时才会发生。
因此,如果您实际上使用h1
和h2
作为关系的描述,那么我将其称为invertedRelation
或类似的。如果你没有将它们用作关系的描述(或者你正在使用它们,但是你的读者并不熟悉数学术语“关系”),那可能会让人感到困惑。
您真正使用哪些变量名称来表示这些哈希值?如果您对功能名称具有描述性而狂热,那么您肯定不会真正调用变量h1
和h2
!