Правильно ли я понимаю 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 шт):
Вы всё правильно поняли, кроме “name – это элемент который будет хранить в себе весь код стрелочной функции.” name не хранит код стрелочной функции, а является частью этой функции. При выполнении map, name будет иметь значения элементов массива. В вашем примере, вначале значение name будет равняться "Ivan". Потом "Andrew". Потом "Gleb". И наконец "Sasha".
Такой подход называется функциональным программированием, и очень часто встречается, когда нужно работать с массивами. Альтернатива — использование циклов. Обычно считается, что функциональный подход лучше, то есть код, использующий его легче читать и изменять.
Две другие функции в JavaScript, которые тесно связаны с map, это filter и reduce.