Javascript 计算类似excel的数字数组的颜色代码

Javascript 计算类似excel的数字数组的颜色代码,javascript,Javascript,我有一个数字数组,希望计算这些数字的颜色(如#559e43): var numbers = [322.5,256.0,209.0,309.0,493.0,261.0,313.0,228.0,376.0,322.0,327.5,332.0,272.0,387.0,451.0,247.0,329.0,314.0]; 目标是使用函数getColorCode()检索数组中每个数字的颜色 var maxval = Math.max(...arr); var minval = Math.min(...ar

我有一个数字数组,希望计算这些数字的颜色(如#559e43):

var numbers = [322.5,256.0,209.0,309.0,493.0,261.0,313.0,228.0,376.0,322.0,327.5,332.0,272.0,387.0,451.0,247.0,329.0,314.0];
目标是使用函数getColorCode()检索数组中每个数字的颜色

var maxval = Math.max(...arr);
var minval = Math.min(...arr);

for(var i=0;i<numbers.length;i++){
   getColorCode(numbers[i], minval, maxval);
}​
var maxval=Math.max(…arr);
var minval=Math.min(…arr);

对于(var i=0;i有两个部分

  • 计算整个范围内的分布
  • 在整个范围内插值给定百分比的颜色
  • 如果仅使用百分比进行演示,则第1项很简单:

    var min = Math.min.apply(null,numbers);
    var max = Math.max.apply(null,numbers);
    var numPct = numbers.map(value => ({value,pct: ((value - min) / (max - min))}))
    
    第二个数字有点复杂,有帮助(有一些小的变化)

    请注意,为了简单起见,下面使用的是百分比,excel使用的是百分比-读者的练习是相应地分发的

    var percentColors=[
    {pct:0.0,颜色:{r:0x00,g:0xff,b:0},
    {pct:0.5,颜色:{r:0xff,g:0xff,b:0},
    {pct:1.0,颜色:{r:0xff,g:0x00,b:0}}];
    var getColorForPercentage=函数(pct){
    对于(变量i=1;i({value,pct:((value-min)/(max-min)))
    var out=document.querySelector(“输出”);
    
    对于(var i=0;i,问题是?
    getColorCode()
    必须知道所有数字(或至少最小值和最大值),而不仅仅是一个数字,因为生成的颜色是相对于最低值和最高值的。是否可以使用函数
    getColorCodes(数字)
    并返回一个
    数字
    颜色代码
    的列表?正如上面的注释所指出的,您需要知道像Excel一样执行操作的范围当然,我们需要将最小值、最大值传递给getColorCode()牙库!我认为您的输出与我得到的相同。(使用另一篇文章中的函数)