How to select N reservoir items randomly from an array in JavaScript

2 Answers

0 votes
function selectReservoir(array, N) {
    const reservoir = array.sort(() => 0.5 - Math.random());

    return reservoir.slice(0, N);;
}

var array = [4, 9, 14, 96, 13, 0, 3, 99, 19, 2, 80, 1, 7];
const N = 5;

const reservoir = selectReservoir(array, N);

console.log(reservoir);



/*
run:

[ 4, 80, 1, 3, 96 ]

*/

 



answered Feb 4, 2024 by avibootz
edited Feb 4, 2024 by avibootz
0 votes
function selectReservoir(array, N) {
    return array.sort(() => 0.5 - Math.random()).slice(0, N);
}
 
var array = [4, 9, 14, 96, 13, 0, 3, 99, 19, 2, 80, 1, 7];
const N = 5;
 
const reservoir = selectReservoir(array, N);
 
console.log(reservoir);
 
 
 
/*
run:
 
[ 3, 80, 96, 14, 9 ]
 
*/

 

 



answered Feb 4, 2024 by avibootz
edited Feb 4, 2024 by avibootz

Related questions

1 answer 157 views
2 answers 168 views
2 answers 169 views
2 answers 140 views
2 answers 199 views
2 answers 169 views
...