Как я могу изменить масштабирование массива до диапазона значений в Javascript? - PullRequest
0 голосов
/ 13 марта 2020

Я хотел бы изменить масштабирование двумерного массива с помощью функции, в которой можно указать минимальный и максимальный входной диапазон и минимальный и максимальный выходной диапазон. Например, мы хотим изменить масштаб значений от 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 не определен

Что такое правильный синтаксис для вызова функции масштаба из карты?

Ответы [ 2 ]

4 голосов
/ 13 марта 2020

Я предполагаю, что аргумент map должен быть функцией, то есть:

var array_scaled = orignal_array.map(num=>scale(num, 0, 8, 0, 1));
0 голосов
/ 13 марта 2020

Array.prototype.map() принимает функцию обратного вызова в качестве первого аргумента.

Похоже, num не определен как текущий элемент массива для функции обратного вызова scale()

Попробуйте var array_scaled = orignal_array.map(array_num => scale(array_num, 0, 8, 0, 1));

...