我有两个关键字符串,表示两个不同类对象的两个对象。钥匙在他们的班级中是独一无二的。我需要创建一个表示这两个键组合的唯一键。我该怎么做?
我不能将它们连接起来,因为基本键中可能存在任何字符。在连接之前我可能会逃脱连接分隔符?我可以创建两个键的哈希值,但这感觉很重。
是否有内置功能可以帮助我这样做?这是“被称为某事”吗?这似乎是一个常见的(已解决的)问题。
(我在Javascript中专门寻找这个,但我也对更高级别的解决方案或框架感到好奇)
答案 0 :(得分:1)
创建第三种类型的对象,它拥有自己的密钥(或者不是,密钥是可选的)来跟踪所有组合。如果您正在动态创建这些条目,则可能需要检查并强制执行值的唯一性。
我通常将其称为人行横道表或链接表。
涵盖此主题的Wiki页面将其称为关联实体 Wikipedia - Associative entity
答案 1 :(得分:1)
简单地连接两个字符串,但前缀第一个字符串及其长度和分隔符。例如,如果输入字符串为"cat"
和"doorbell"
,则输出字符串为"3:catdoorbell"
。另一方面,如果输入为"catdoor"
和"bell"
,则输出为"7:catdoorbell"
。
使用此方法,输出是唯一的,原始键可从输出字符串中恢复。