javascript - 将百分比添加到随机生成的数字

标签 javascript jquery html css

我正在制作随机颜色生成器。我想通过在字段中设置百分比来增加获得某种颜色的百分比或机会。 (例如,用户将蓝色设置为有 50% 的几率生成)我可以这样做吗?如果有更简单/更有效的方法来编写此代码,请告诉我。我对编码很陌生,但想挑战自己。

我想知道如何设置,例如。 50% 到一种颜色,但不知道如何在数组中执行此操作,因为我的数组中只有 0-9 索引。请帮助:)

var colors = ["Red", "Yellow", "Blue", "Green", "Orange", "Purple", "Pink", "Black", "White", "Violet"];

$(document).ready(function(){
 $('#spin-btn').click(function(){
    var output = colors.length;
    var randomNumber = Math.floor(Math.random()*output);

    for(i=0;i<=output;i+=1){
        var newColor = colors[randomNumber];
        console.log(newColor);

        if(newColor === "Red"){
            $('#red').show();
        } else {
            $('#red').hide();
        }
        if(newColor === "Yellow"){
            $('#yellow').show();
        } else {
            $('#yellow').hide();
        }
        if(newColor === "Blue"){
            $('#blue').show();
        } else {
            $('#blue').hide();
        }
        if(newColor === "Green"){
            $('#green').show();
        } else {
            $('#green').hide();
        }
        if(newColor === "Orange"){
            $('#orange').show();
        } else {
            $('#orange').hide();
        }
        if(newColor === "Purple"){
            $('#purple').show();
        } else {
            $('#purple').hide();
        }
        if(newColor === "Pink"){
            $('#pink').show();
        } else {
            $('#pink').hide();
        }
        if(newColor === "Black"){
            $('#black').show();
        } else {
            $('#black').hide();
        }
        if(newColor === "White"){
            $('#white').show();
        } else {
            $('#white').hide();
        }
        if(newColor === "Violet"){
            $('#violet').show();
        } else {
            $('#violet').hide();
        }


        break;
    }

最佳答案

 var colors = [
  "Blue","Blue", "Blue", "Blue", "Blue", "Blue", "Blue", "Blue" , "Blue" 
  "Red","Yellow", "Green", "Orange", "Purple", "Pink", "Black", "White", "Violet"  
 ];

 function generateColor() {
   var colorsAmount = colors.length;
   var randIndex = Math.floor(Math.random() * colorsAmount);
   return colors[randIndex];
 }

在颜色数组中重复该元素以增加其被选中的概率。

现在有 9 个元素的值为“blue”,其余所有元素重复一次。

所以有 18 个概率中有 9 个选择蓝色 (50%),所有其他颜色有 1 个概率中的 1 个 (5.55..%)

inspired by this answer

关于javascript - 将百分比添加到随机生成的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48261071/

相关文章:

javascript - 更改jsp href元素,c :url

javascript - Jquery从iframe读取父值

javascript - 通过 javascript 获取 Excel 特定列值并将值赋给文本框

javascript - 在IOS中实现JS功能

javascript - 是否可以在同时触发的多个事件上设置监听器?

jquery - 为什么我的 jQuery 插件不能在 IE9 中创建列?

javascript - 如何自动刷新我的 php 聊天脚本?

html - 匹配整个文档中某一类型的第一个/第n个元素

javascript - TinyMCE 不使用 ng-repeat 进行初始化

Javascript - 使用 If 语句创建变量