繁体   English   中英

如何在 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 is not defined

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM