Нужно из большого массива выбрать определенное количество случайных значений и записать в новый массив и вернуть его, только в новом не должны быть повторения.
написал вот такое
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);
что то не всегда получается, как будто недопроверяет последний элемент массива, потому что повторения попадают в конец. Не могу домучать, может подскажете?