Генерация уникального идентификатора по нескольким параметрам - PullRequest
0 голосов
/ 25 октября 2018

Я хочу сгенерировать уникальные идентификаторы для 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.Кроме того, я не знаю, являются ли все эти умножения более дорогостоящими, чем генерация строк, но в любом случае главная проблема - мусор.

Как я могу уникальным образом сгенерировать идентификатор на основе трех разных значений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...