Показать сообщение отдельно
  #1 (permalink)  
Старый 19.10.2011, 18:23
Интересующийся
Отправить личное сообщение для e-do Посмотреть профиль Найти все сообщения от e-do
 
Регистрация: 11.10.2011
Сообщений: 26

Массив случайных чисел
Нужно из большого массива выбрать определенное количество случайных значений и записать в новый массив и вернуть его, только в новом не должны быть повторения.

написал вот такое

var uCatsOut=[
['7','1','0'],
['8','1','2'],
['10','1','0'],
['11','1','0'],
['12','1','1'],
['13','1','0'],
['22','1','0']
];

function getRandomInt(min, max)
{
	var randNum;
	randNum = Math.floor(Math.random() * (max - min + 1)) + min;
	return randNum;
}

function randomIdsOfCat(catslength){
	var num;
	var randNumOld = [];
	for(i=0; i<catslength; i++){
		num = getRandomInt(0, uCatsOut.length-1);
		if(randNumOld.length > 0){
			for(k = 0; k < randNumOld.length; k++){
				if(num == randNumOld[k]){
					k=0;
					num = getRandomInt(0, uCatsOut.length-1);
				}
			}	
		}
		randNumOld[i] = num;
	}
	return randNumOld;
}

 var s = randomIdsOfCat(6);

alert (s);


что то не всегда получается, как будто недопроверяет последний элемент массива, потому что повторения попадают в конец. Не могу домучать, может подскажете?

Последний раз редактировалось e-do, 19.10.2011 в 18:45.
Ответить с цитированием