Правильно ли я понимаю array.map?

Сейчас выучил метод массива map, по началу было сложно, но вроде как разобрался и вот хочу спросить, правильно ли я все понял?

let names = ["Ivan", "Andrew", "Gleb", "Sasha"];

let namesData = names.map(name => name.length)
    
console.log(namesData)
<!DOCTYPE html>
<html>
<head>
    <title>map test</title>
</head>
<body>
    <script type="text/javascript" src="javascript.js"></script>
</body>
</html>

Код выше я понимаю так:

В первой строке я создаю массив с именами, далее создаю второй массив который будет хранить в себе результаты вызова names.map

name - это элемент который будет хранить в себе весь код стрелочной функции.

Выходит что первый массив дает нам данные с которыми мы будем работать, результат "маппинга" в себе будет хранить второй массив, а код который пишется в стрелочной функции - это работа с данными из первого массива. Правильно?


Ответы (1 шт):

Автор решения: Arseni Mourzenko

Вы всё правильно поняли, кроме “name – это элемент который будет хранить в себе весь код стрелочной функции.” name не хранит код стрелочной функции, а является частью этой функции. При выполнении map, name будет иметь значения элементов массива. В вашем примере, вначале значение name будет равняться "Ivan". Потом "Andrew". Потом "Gleb". И наконец "Sasha".

Такой подход называется функциональным программированием, и очень часто встречается, когда нужно работать с массивами. Альтернатива — использование циклов. Обычно считается, что функциональный подход лучше, то есть код, использующий его легче читать и изменять.

Две другие функции в JavaScript, которые тесно связаны с map, это filter и reduce.

→ Ссылка