Здравствуйте! Казалось бы банальщина, но не могу додуматься, как сделать функцию, которая будет принимать в качестве параметра количество возвращаемых элементов, и массив, из которого мы будем их вычленять (sorry)!
let arr = [ 1, 2, 3, 4, 5, 6, 7 ];
function getRandom( n, array ) { // n - число рандомных элементов, из массива array
// . . . код который позволит получить определённое количество элементов из массива array
};
getRandom( 3, arr ); // должно получиться например [4, 6, 7] или [1, 4, 6]
! ! ! Я написал реализацию данной функции, НО у неё есть минус , который я настоятельно прошу учесть
let arr = [1,2,3,4,5,6,7,8,9,10];
function getRandomRiver(n, a){
let result = [];
for(let k=0; k<a.length; k++){
if(!Math.round(Math.random())) result.push(a[k]); // Math.round(Math.random()) возвращает либо 0 либо 1, если 0 то мы добавляем этот элемент в массив
if(result.length>=n) break;
};
console.log(result);
};
getRandomRiver(3, arr);
Дело в том, что данная функция во 1ВЫХ может вернуть и меньшее количество , а во 2ЫХ, она каждый раз рассматривает элементы массива с 0го индекса, и шанс того, что в переменную
result
попадут элементы ближе к концу массива очень мал, а мне нужно, чтобы был полноценный рандом охватывающий весь массив! Спасибо заранее!