Я хочу сгенерировать уникальные идентификаторы для objects
, чтобы я мог сохранить их в Map
.
Полями объекта, которые я сейчас использую для генерации идентификатора, являются: time
x
иy
, все они являются положительными целыми числами.
Я не могу напрямую сохранить объект как key
из Map
, поскольку объекты также отправляются через сеть, поэтому их ссылки изменяются.
В настоящее время для генерации идентификатора я создаю строку, подобную этой:
const uid = `${time}_${x}_${y}`;
Пока это работает достаточно хорошо, но я беспокоюсь о генерации большого количества мусора (одна объединенная строка всякий раз, когдаМне нужно получить идентификатор объекта).
Числа могут быть довольно большими, 0 <= t,x,y <= 200000
, но я подумал об использовании чисел для идентификаторов, таких как: time * 10^18 + x ^ 10^y + y
, поэтому uid
будет иметь 6 цифр для каждого значения (основание 10, цифры): ttttttxxxxxxyyyyyy
, но это число больше Number.MAX_SAFE_INTEGER
.Кроме того, я не знаю, являются ли все эти умножения более дорогостоящими, чем генерация строк, но в любом случае главная проблема - мусор.
Как я могу уникальным образом сгенерировать идентификатор на основе трех разных значений?