Как на javascript правильно генерировать уникальные числа? То есть в массиве объекты, и у каждого объекта свой уникальный id, id от 0 до бесконечности, как правильно добавить в массив новый объект с уникальным id (которого нет в массиве)?
zlFast: Ну сохраните в какую-нибудь более глобальную переменную и делайте ей инкремент. Или ищите максимальный id в массиве и плюсаните. Вариантов то море. Задача незамысловатая.
Создаете функцию, которая генерирует случайно число, смотрит есть ли такое число в массиве и если есть, то еще раз вызывает себя же, а если нет, добавляет это число в массив.
Простой алгоритм
Если вы хотите настоящий уникальный идентификатор на клиенте, то для этого нужно использовать GUID (Globally Unique Identifier): https://www.npmjs.com/package/node-uuid
тем, что случайные числа повторяются) они же случайные! может быть три семерки подряд.
У меня та же проблема: нужно создать массив объектов и генерить им уникальные id, чтобы без повторов. Числа от 1 до 25. Вариант "по порядку" не подходит и я не понимаю как его исполнить в рамках функции-конструктора
Я бы не изобретал велосипед. Считаю правильным воспользоваться отработанными решениями.
Например передавать в форму uuid с сервера.
Утилита uuidgen базируется на библиотеке libuuid.
Например, при вызове uuidgen с ключем -t , uuid базируется и на времени и уникальном ид системы, где была запущена утилита. Т.е. при такой генерации uuid одновременно на множестве серверов коллизия будет невозможна.