Всем привет, вопрос о том, как работает метод map в JS

Рейтинг: 0Ответов: 1Опубликовано: 03.03.2023

Не могу понять, почему этот код работает:

const numbers = [1, 4, 9];
const roots = numbers.map(Math.sqrt);

Хотя в моём представлении он должен работать только вот так:

const numbers = [1, 4, 9];
const roots = numbers.map(number => Math.sqrt(number));

Выходит, что метод map каким то образом понимает, что аргументом в Math.sqrt() нужно подставить итерируемый элемент массива?

Ответы

▲ 0

В целом да, метод map() принимает функцию обратного вызова, которая будет вызываться для каждого элемента массива. Когда вы передаете Math.sqrt в качестве этой функции, метод map() использует ее для вызова Math.sqrt для каждого элемента в массиве. Поскольку Math.sqrt является функцией, которая ожидает один аргумент (число), каждый элемент в массиве передается в Math.sqrt как единственный аргумент