簡體   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