Randomly select defined number of items from an array
No-Library (pure JS), HTML, CSS, JavaScript
by Sree K
JavaScript
function getRandomItemsFrom(arr, numberOfItems) {
if ( arr instanceof Array === false || arr.length === 0 ) return false;
if ( numberOfItems === undefined || numberOfItems <= 0 ) return false;
var results = [],
usedIndexes = {},
randomIndex;
while ( results.length !== numberOfItems ) {
randomIndex = Math.floor(Math.random() * arr.length);
if ( usedIndexes.hasOwnProperty(randomIndex) === false ) {
usedIndexes[randomIndex] = true;
results.push(arr[randomIndex]);
}
}
return results;
}
var alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
console.log('10 items: ' + getRandomItemsFrom(alphabet, 10));
console.log('1 item: ' + getRandomItemsFrom(alphabet, 1));
console.log('20 items: ' + getRandomItemsFrom(alphabet, 20));
console.log('6 items: ' + getRandomItemsFrom(alphabet, 6));
console.log('4 items: ' + getRandomItemsFrom(alphabet, 4));
console.log('7 items: ' + getRandomItemsFrom(alphabet, 7));
console.log('12 items: ' + getRandomItemsFrom(alphabet, 12));
document.body.innerHTML = "<div>" + getRandomItemsFrom(alphabet, 10).join("</div><div>") + "</div>";