Когда вы работаете с массивами в Javascript, вам часто приходится обращаться к хранящимся в них данным или изменять их. Есть несколько различных способов сделать это. Конечно, вы всегда можете получить доступ к элементу по отдельности через его индекс и присвоить новое значение. Для нацеливания на один элемент, когда вы уже знаете его индекс, это работает просто отлично:

Но это может быстро стать неэффективным, особенно если вы повторяете одну и ту же операцию для нескольких элементов. Например, если у вас есть массив чисел, и вы хотите умножить каждое число на 3, это может выглядеть так:

К счастью, в Javascript есть инструменты, которые могут сделать этот процесс немного более автоматизированным. Например, вы можете написать функцию, использующую цикл for:

Однако, на мой взгляд, петли for легко могут стать плотными и непрозрачными. Часто с первого взгляда трудно понять, что он делает. К счастью, в Javascript есть еще один встроенный метод, который идеально подходит для решения поставленной задачи. Этот метод .map.

Так что же происходит, когда вы используете .map? Когда вы вызываете .map для массива, вы должны указать функцию обратного вызова в скобках. Эта функция обратного вызова будет иметь параметр, и по мере того, как .map перемещается по каждому элементу целевого массива, каждый элемент будет передан в качестве аргумента для обратного вызова. На каждой итерации выполняются операции обратного вызова, а конечный результат помещается в новый массив. После того, как .map пройдет через каждый элемент массива, его возвращаемое значение будет новым массивом той же длины, что и целевой массив.

Вы также можете передать функцию, которая была объявлена ​​в другом месте в качестве обратного вызова:

Как видите, .map — очень полезный инструмент в Javascript. Использование .map может привести к более чистому и удобному для чтения коду. Это особенно полезно в ситуациях, когда вам нужно манипулировать информацией, хранящейся в массиве, без изменения исходных данных. Его возвращаемое значение позволяет сохранять данные в новую переменную, чтобы вы могли получить доступ к новому массиву в своем коде.