К сожалению, нет возможности получить 100% гарантированную уникальность без использования всего содержимого массива в качестве ключа. Самые хорошие, не криптографические хэши будут только уменьшать коллизии до суммы, приемлемой для хорошей производительности в хеш-таблице, но вам все равно нужно проверить соответствие всего содержимого.
Даже криптографический хеш, такой как SHA-1 или MD5, все еще может иметь столкновения, но в большинстве случаев это крайне маловероятно. Если это будет достаточно хорошо, я, вероятно, поеду с SHA-1. В противном случае я бы преобразовал массив в строку, которая будет использоваться в качестве ключа, и пусть JavaScript беспокоится о хэшировании и конфликтах.
В любом случае, вы, вероятно, работаете с производительностью (собственное хэширование, которое делает JavaScript, вероятно, будет намного быстрее, чем все, что вы можете писать на JavaScript) и, возможно, абсолютную правильность для пространства.
Кроме того, независимо от того, выполняете ли вы сами хеширование или выполняете JavaScript, будьте осторожны с тем, как вы преобразовываете массив в строку, потому что простая конкатенация может быть не уникальной (даже с разделителем).
Очень яркий, с большой вероятностью создаст повторяющиеся идентификаторы, предоставленные нескольким пользователям, и т. Д. Не очень хорошее решение. –
Я также хочу, чтобы это возвращало тот же идентификатор, что и значение. Отсюда ссылка на Ша1. –
@Marc B: javascript не является общим, без проблем с несколькими пользователями, в зависимости от его глубокой цели. – yoda