From 483e3e3053d6ae614d652f4cd0403fdf836dd6ee Mon Sep 17 00:00:00 2001 From: Pl4gue Date: Sun, 24 Dec 2017 18:45:17 +0100 Subject: [PATCH 1/2] Optimize random Hex Color Generator --- snippets/randomHexColorCode.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/snippets/randomHexColorCode.md b/snippets/randomHexColorCode.md index 18691a57a..574b234a8 100644 --- a/snippets/randomHexColorCode.md +++ b/snippets/randomHexColorCode.md @@ -5,11 +5,7 @@ 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`. ```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" From dfa41b92bfe8244e751f0d19c2621cb4a0cc60c5 Mon Sep 17 00:00:00 2001 From: Pl4gue Date: Sun, 24 Dec 2017 18:58:00 +0100 Subject: [PATCH 2/2] update description --- snippets/randomHexColorCode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snippets/randomHexColorCode.md b/snippets/randomHexColorCode.md index 574b234a8..83d7d0f91 100644 --- a/snippets/randomHexColorCode.md +++ b/snippets/randomHexColorCode.md @@ -2,7 +2,7 @@ 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 = () => '#'+(Math.random()*0xFFFFFF<<0).toString(16);