@podhou420
Студент

Как этот код работает?

let a = [ 
[1, 2, 3], 
[4, -10, 6], 
[7, 8, 9] 
]; 
let mx = Math.max; 
let mn = Math.min; 
let max = mx(...a.map(e => mx(...e))); 
let min = mn(...a.map(e => mn(...e))); 
max = -min > max ? min : max; 
let result = a.map(e => e.map(e => e / max)); 
console.log(result);

Дико нужна помощь в разборе этого кода
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 1
nikolayshabalin
@nikolayshabalin
Автор профессиональных курсов в HTML Academy
Какая часть кода вам не понятна?
Разберите всё на куски.

Сохраняем двумерный массив
let a = [ 
[1, 2, 3], 
[4, -10, 6], 
[7, 8, 9] 
];


Обращаемся к глобальному объекту Math, точнее к его методам min и max
let 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;
    })
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы