生成一个随机颜色,要求:范围#333333 ~#DDDDDD,并且有50%几率生成的是#333333【面试题】

304 阅读1分钟

  var ary = '#';
   //获取6位n-m之间的随机整数
  for (var i = 0; i < 6; i++) {
    // toString(16)转为16进制
    // toUpperCase()转为大写
    key = String(getRandom(4, 13).toString(16).toUpperCase())
    ary += key
  }
  //50%几率生成的是#333333
  ary = Math.random() < .5 ? ary : '#333333'
  console.log(ary);
  
//生成随机数
function getRandom(n, m) {
    var n = Number(n);    //强制转换成数字
    var m = Number(m);
    if (isNaN(n) || isNaN(m)) {    //判断是否为有效数字 ,其中一个不是有效数字就返回[0,1)之间的随机小数
      return math.random();
    }
    if (n > m) {     //如果n>m则交换
      var temp = n;
      n = m;
      m = temp;
    }
    return Math.round(Math.random() * (m - n) + n);
  }