Short alternative using spread operator and .map()
Demo 1
const genRanHex = size => [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join('');
console.log(genRanHex(6));
console.log(genRanHex(12));
console.log(genRanHex(3));
Pass in a number (
size
) for the length of the returned string.Define an empty array (
result
) and an array of strings in the range of[0-9]
and[a-f]
(hexRef
).On each iteration of a
for
loop, generate a random number 0 to 15 and use it as the index of the value from the array of strings from step 2 (hexRef
) — thenpush()
the value to the empty array from step 2 (result
).Return the array (
result
) as ajoin('')
ed string.
Demo 2
const getRanHex = size => {
let result = [];
let hexRef = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
for (let n = 0; n < size; n++) {
result.push(hexRef[Math.floor(Math.random() * 16)]);
}
return result.join('');
}
console.log(getRanHex(6));
console.log(getRanHex(12));
console.log(getRanHex(3));