gpt4 book ai didi

javascript - 避免 Math.random 中先前数字的简单方法?

转载 作者:行者123 更新时间:2023-12-03 06:27:25 24 4
gpt4 key购买 nike

我正在研究随机报价/颜色生成器。我希望它避免重复以前的颜色(以简单/容易/易于理解的方式,因为我是 JS/jQuery 的初学者)。

这是我的代码,我不知道它有什么问题。

  var colors = ["#8ee5ee", "#ee82ee", "#469649", "#ff4444", "#ffa500", "#dddddd", "#efc3c8", "#d2d449", "#f91589","#906161","#875d39","#ffdab9","#d1e529","#3a718b"];

var color = Math.floor(Math.random() * colors.length);

var lastcolor = 0;

while(color === lastcolor){
color = Math.floor(Math.random() * colors.length) + 1;
}

$("body").animate({backgroundColor: colors[color]}, 1000);
$("#new-quote").animate({backgroundColor: colors[color]}, 1000);
$("h6").fadeOut(1000);
$("p").fadeOut(1000);

});
});

基本上,当我单击按钮(#new-quote)时,当前背景颜色会更改为另一种随机颜色,依此类推。但有时颜色不会改变,因为机器选择了与当前相同的数字/颜色。我正在努力避免这种情况!

最佳答案

我猜您提供的代码存在某种循环。那么你不应该重置颜色,而是将其分配给前一个颜色。

var colors = ["#8ee5ee", "#ee82ee", "#469649", "#ff4444", "#ffa500", "#dddddd", "#efc3c8", "#d2d449", "#f91589","#906161","#875d39","#ffdab9","#d1e529","#3a718b"];

var color = Math.floor(Math.random() * colors.length);

while(color === lastcolor){
color = Math.floor(Math.random() * colors.length) + 1;
}

lastcolor = color;

当然,您应该定义您的 lastcolor在脚本的开头。地点

var lastcolor = 0;

<script>之后标签打开。

关于javascript - 避免 Math.random 中先前数字的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588942/

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