使用JavaScript为色度计生成#CCCCCC和#3B5998之间的颜色?

我们必须编写一个函数来生成两个给定颜色之间的随机颜色。让我们分部分解决这个问题-

  • 首先→我们编写一个函数,该函数在两个给定数字之间生成一个随机数。

  • Second→而不是使用十六进制比例生成随机颜色,我们将十六进制映射到0到15的十进制比例,并使用该比例。

  • 最后→我们遍历任何给定的颜色字符串并生成随机颜色。

示例

const randomBetween = (a, b) => {
   const max = Math.max(a, b);
   const min = Math.min(a, b);
   return Math.floor(Math.random() * (max - min) + min);
};
const randomColor = (firstColor, secondColor) => {
   first = firstColor.toUpperCase().substring(1, secondColor.length);
   second = secondColor.toUpperCase().substring(1, firstColor.length);
   const scale = '0123456789ABCDEF';
   let color = '#';
   for(let i = 0; i < first.length && i < second.length; i++ ){
      const random = randomBetween(scale.indexOf(first[i]),
      scale.indexOf(second[i]));
      color += scale[random];
   };
   return color;
};
console.log(randomColor('#34324a', '#42342c'));
console.log(randomColor('#f43250', '#12342c'));
console.log(randomColor('#34324a', '#47942c'));
console.log(randomColor('#ffffff', '#000000'));

以下是控制台中可能的输出-

注意-这只是许多可能的输出之一,因为每次输出都是随机的。

输出结果

#33332A
#C23328
#36822B
#35102A