Как генерировать каждый раз новую строку без повтора
-
У меня тут Создается случайная строка длиной в 12 символов и записывается в файл. Как сделать чтобы одинаковые строчки не создавались?
И как еще можно сделать проверку файла на дубликат строк и удаление? (знаю что есть Удаление дубликатов, не знаю как сделать чтобы работало)
По поиску нашел только 1 похожую тему, но не получилось решить задачу, можете подробно объяснить, действие за действием, пожалуйста.
-
Черный список строк сделай и всё. Затем после генерации строки проверяй есть такая или нет. Если есть сгенерируй новую.
-
@symposium Сначала создайте список и все новые строки добавляйте в этот список. Затем используйте удалить дубликаты и только после этого записывайте это в файл.
-
@usertrue все получилось, благодарю :)
-
@symposium said in Как генерировать каждый раз новую строку без повтора:
строка длиной в 12 символов
Неужели при использовании блока "случайная строка" в 12 символов есть дубликаты??? НЕ МОЖЕТ БЫТЬ ТАКОГО!!!
-
@besigor said in Как генерировать каждый раз новую строку без повтора:
@symposium said in Как генерировать каждый раз новую строку без повтора:
строка длиной в 12 символов
Неужели при использовании блока "случайная строка" в 12 символов есть дубликаты???
Провёл сейчас эксперимент, создал массив и циклом добавил в него миллион
!
1 000 000!
случайных строк длиной в 12 символов. После этого удалил дубликаты и подсчитал количество элементов в массиве, ни один элемент не удалился. То есть 12 символов в строке достаточно, чтобы не было ни одного дубликата на миллион строк, думаю этого более чем достаточно, чтобы вообще отказаться от удаления дубликатов.
Вот тестовый скрипт
-
@fox xD
-
Тогда тоже от себя дополню. Для этих целей существуют guid(uuid) https://ru.wikipedia.org/wiki/GUID
Вот простейший генераторgeneratorUUID = function () { return 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.replace(/x/g, function (c) { return (Math.random() * 16 | 0).toString(16); }).toLowerCase(); }; log(generatorUUID() )