Какая часть кода вам не понятна?
Разберите всё на куски.
Сохраняем двумерный массив
let a = [
[1, 2, 3],
[4, -10, 6],
[7, 8, 9]
];
Обращаемся к глобальному объекту
Math, точнее к его методам
min и
maxlet mx = Math.max;
let mn = Math.min;
Проходим по всем элементам массива и сохраняем fмаксимальное значение. Используется метод
map массивов, а также новый
spread оператор
let max = mx(...a.map(e => mx(...e)));
В этой части используется тернарный оператор, который просто сокрщает запись в такую
max = -min > max ? min : max;
из такой
if (-min > max) {
max = min;
} else {
max = max;
}
Здесь с толку могут сбить стрелочные функции. Из-за того, что массив двумерный, приходится вкладывать map в map
let result = a.map(e => e.map(e => e / max));
Вот может быть лучше?
let result = a.map(function (e) {
return e.map(function (e) {
return e / max;
})
});