Эй, я скажу тебе почему!😸

Для этого нам понадобится очень-очень простая задача.

И вот проблема: у нас есть массив объектов, где каждый объект содержит профили пользователей. Этот массив выглядит как 👇

Задача состоит в том, чтобы создать новый массив имен профилей, который должен содержать только имя в массиве. Вывод должен быть 👇

давайте попробуем это с обоими подходами.

С циклом For:

Вывод:

сделаем это с картой.

Вывод:

Вы видите, что оба подхода дают один и тот же результат, но Map более четкий и короткий, чем цикл for. Ниже приведены причины, почему это так.

  1. Карта возвращает новый массив. Это означает, что любое значение, записанное в операторе return, может быть сохранено в массиве.
  2. Точно так же карта array.filter также может запускать функцию обратного вызова на каждой итерации. Это означает, что часть логики хранится в функции и передается в качестве аргумента.
  3. Оператор возврата играет здесь важную роль. Какое бы значение ни возвращалось в каждом операторе, оно помещается в массив profileNames. Вот как карта возвращает новый массив
  4. Оператор return является ключом к пониманию карты, так как позволяет узнать, что возвращает цикл forEach.

С ForEach:

Вывод:

forEach apporch вернул undefined, потому что он не возвращает новый массив, мы должны использовать метод array.push для сохранения item.name в массиве profileNames на каждой итерации. Его можно использовать как сокращение для циклов.

Обязательно посмотрите, если вы все еще боретесь с пониманием карты и forEach. язык: хинди

Надеюсь, у вас есть причина использовать карту вместо цикла for, однако циклы for работают быстрее, чем map. Спасибо за чтение🙏. Пожалуйста, поделитесь этим, если это было полезно.