如何将数组重新缩放到 Javascript 中的值范围?

How Can I Re-scale An Array To A Range Of Values in Javascript?

我想用一个函数重新缩放二维数组,其中可以指定最小和最大输入范围以及最小和最大输出范围。例如,我们要将值 0 到 8 重新缩放为 0 到 1。

const scale = (num, in_min, in_max, out_min, out_max) => {
    return (num - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

var array_scaled = orignal_array.map(scale(num, 0, 8, 0, 1));

}

代码产生以下错误: ReferenceError: num 未定义

从地图中调用比例函数的正确语法是什么?

Array.prototype.map() 接受一个回调函数作为它的第一个参数。

看来num没有定义为数组的当前元素到回调函数scale()

尝试var array_scaled = orignal_array.map(array_num => scale(array_num, 0, 8, 0, 1));

我猜 map 的参数一定是一个函数,即:

var array_scaled = orignal_array.map(num=>scale(num, 0, 8, 0, 1));