gpt4 book ai didi

必须有 7 位数字的 javascript 随机颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:28:21 24 4
gpt4 key购买 nike

我发现了以下很棒的脚本,可以使用 javascript 创建随机颜色。

var randColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);

我对这个脚本唯一的问题是它不能保证它返回一个正常的 7 位十六进制字符串。

有时它只有 6 位数字,例如 #e1d19。

有没有办法强制使用 7 位十六进制值?

谢谢你的帮助。

编辑:这是我的实际问题:

function randColor() {
var randColor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
return randColor;
}

for (var i=0; i<100; i++) {
$("#colorpicker").append("<div class='color' title="+randColor()+" style='background:"+randColor()+"'></div>");
}

我正在创建具有随机颜色的小 div,当我点击它们时,我会捕获它们的标题属性,然后为我的 body 背景着色。

但是目前我的代码以

结尾
<div style="background:rgb(176, 249, 252);" title="#8bc47d" class="color"></div>

所以当我获取标题属性时,我为 body 指定的颜色与小 div 显示的颜色不同。

最佳答案

你可以自己填充它:

function randomColor() {
var rc = (~~(Math.random() * 0xFFFFFF)).toString(16);
return '#' + new Array(7 - rc.length).join('0') + rc;
}

这个技巧:

new Array(n).join(char)

是一种在字符串中获取 n - 1 个“char”副本的方法。我从 7 而不是 6 中减去值的原始长度,这样当字符串长度为 5 个字符时,我得到一个零,当 4 个字符时,我得到两个,等等。

编辑 — 当然(如其他答案中所述)您也可以像这样获得填充零:

  return '#' + "000000".slice(rc.length) + rc;

我必须做那些愚蠢的 jsperf 事情之一,看看哪个更快 :-)

关于必须有 7 位数字的 javascript 随机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4504344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com