diff --git a/README.md b/README.md index 17cbcc2f3..131591ec3 100644 --- a/README.md +++ b/README.md @@ -2302,14 +2302,10 @@ const isSymbol = val => typeof val === 'symbol'; Generates a random hexadecimal color code. -Use `Math.random` to generate a random number and limit that number to fall in between 0 and 16 using `Math.floor`. Use the generated random number as index to access a character from 0 to F. Append it to `color` till the length is not `7`. +Use `Math.random` to generate a random 24-bit(6x4bits) hexadecimal number. Use bit shifting and then convert it to an hexadecimal String using `toString(16)`. ```js -const randomHexColorCode = () => { - let color = '#'; - while(color.length < 7) color += '0123456789ABCDEF'[Math.floor(Math.random() * 16)]; - return color; -} +const randomHexColorCode = () => '#'+(Math.random()*0xFFFFFF<<0).toString(16); // randomHexColorCode() -> "#e34155" // randomHexColorCode() -> "#fd73a6" // randomHexColorCode() -> "#4144c6" diff --git a/docs/index.html b/docs/index.html index c885c091c..82c752352 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1440,12 +1440,8 @@ Omit the second argument to use the default regex.
Generates a random hexadecimal color code.
-Use Math.random to generate a random number and limit that number to fall in between 0 and 16 using Math.floor. Use the generated random number as index to access a character from 0 to F. Append it to color till the length is not 7.
const randomHexColorCode = () => {
- let color = '#';
- while(color.length < 7) color += '0123456789ABCDEF'[Math.floor(Math.random() * 16)];
- return color;
-}
+Use Math.random to generate a random 24-bit(6x4bits) hexadecimal number. Use bit shifting and then convert it to an hexadecimal String using toString(16).
+const randomHexColorCode = () => '#'+(Math.random()*0xFFFFFF<<0).toString(16);
// randomHexColorCode() -> "#e34155"
// randomHexColorCode() -> "#fd73a6"
// randomHexColorCode() -> "#4144c6"