Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.09.2016, 11:33
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Жёсткий затуп с генерацией уникальных чисел
Здравствуйте! Код должен поместить в массив только уникальные числа.
var res=[];
var i = 0;

while(i<38){
    var n = ~~(Math.random()*100); //генерация двухзначного числа
    if(n<38 && !!res.indexOf(n)){      //чисто условно нужно число меньше 38 и уже не находящееся в массиве
        res.push(n);   //суём его в массив
        i++;
    }
}
console.log(res);


Но что-то здесь не так,потому что в массиве всё равно появляются повторяющиеся числа, не пойму никак, в чём ошибка
Ответить с цитированием
  #2 (permalink)  
Старый 15.09.2016, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от innowed
!!
не верно
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2016, 12:10
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Сообщение от рони Посмотреть сообщение
не верно
Я и так пробовал, хотя двойное отрицание должно так же истинный результат вернуть. Всё равно повторяется, я уже с ума схожу
Изображения:
Тип файла: jpg 1.jpg (21.5 Кб, 15 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2016, 12:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

innowed,
Сообщение от innowed
хотя двойное отрицание должно так же истинный результат вернуть
то есть пофигу на значение indexOf -- если вам сложно сокращать так не сокращайте
if(n<38 && res.indexOf(n) == -1)
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2016, 12:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

innowed,

if(n<38 && !~res.indexOf(n))
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2016, 13:45
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Это всё ведёт в бесконечный цикл, я почему и написал)))
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2016, 15:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

innowed,
какая проблема сгененировать сразу что нужно? без while
Сообщение от innowed
Это всё ведёт в бесконечный цикл, я почему и написал)))
что на ваших картинках не видно, качество плохое.
у меня не зацикливает, но подбор может длится очень долго -- выход: генерация того что нужно сразу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация случайных уникальных чисел karakym Общие вопросы Javascript 0 02.10.2015 14:29