Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить уникальные числа в определенном диапазоне (https://javascript.ru/forum/misc/26282-kak-poluchit-unikalnye-chisla-v-opredelennom-diapazone.html)

Policeman 03.03.2012 05:07

Как получить уникальные числа в определенном диапазоне
 
Есть например диапазон 0-50 как набить массив только уникальными значениями в том порядке в котором они выпадают.

Т.е. сгенерировать не проблема проблема в добавлении только уникальных. Можно как-то это сделать не перебирая каждый раз массив с проверкой нет ли совпадения прежде чем добавить новый элемент?

Может в яваскрипт есть find значения по массиву?

T-sh 03.03.2012 06:53

indexOf (возврат -1 в случае отсутствия совпадений)

оператор in, пробегает быстро по индексам.. поможет, если вывернуть массив наизнанку: значение => индекс.

Kolyaj 03.03.2012 09:41

Сделать массив чисел от 0 до 50 и перемешать его.

melky 03.03.2012 10:31

Цитата:

Сообщение от Policeman (Сообщение 161050)
Есть например диапазон 0-50 как набить массив только уникальными значениями в том порядке в котором они выпадают.

Т.е. сгенерировать не проблема проблема в добавлении только уникальных. Можно как-то это сделать не перебирая каждый раз массив с проверкой нет ли совпадения прежде чем добавить новый элемент?

Может в яваскрипт есть find значения по массиву?

можно ещё забить все эти числа в хеш и проверять, есть ли они там, по оператору in

nikita.mmf 03.03.2012 10:41

alert(new Array(50).join(0).split(0).map(function(item,i){return i}).sort(function(){ return 0.5 - Math.random();}))

Kolyaj 03.03.2012 11:36

nikita.mmf,
на будущее про перемешивание
http://alljs.ru/articles/array/sort#shuffle

alexan0308 03.03.2012 12:37

Была подобная тема
 
http://javascript.ru/forum/misc/2357...diapozone.html

Policeman 03.03.2012 13:20

все таки перемешал:) спасибо всем за варианты


Часовой пояс GMT +3, время: 15:30.