Viele Antworten enthalten mehr Anrufe als nötig, um Math.random()
. Oder sie hoffen, dass die Hexadezimal-Darstellung dieser Zahl sechs Zeichen hat.
Multiplizieren Sie zunächst den Zufallswert, so dass er im Bereich [0, 0xffffff + 1)
. Jetzt hat unsere Zahl die Form 0xRRRRRR
und etwas Kleingeld, was eine Zahl mit 24 signifikanten Bits ist. Lesen Sie jeweils vier Bits ab, und verwenden Sie diese Zufallszahl [0, 15]
und wandeln es in das entsprechende hexadezimale Zeichen in lookup
.
function randomColor() {
var lookup = "0123456789abcdef";
var seed = Math.random() * 0x1000000;
return (
"#" +
lookup[(seed & 0xf00000) >> 20] +
lookup[(seed & 0x0f0000) >> 16] +
lookup[(seed & 0x00f000) >> 12] +
lookup[(seed & 0x000f00) >> 8] +
lookup[(seed & 0x0000f0) >> 4] +
lookup[seed & 0x00000f]
);
};