Эй, я скажу тебе почему!😸
Для этого нам понадобится очень-очень простая задача.
И вот проблема: у нас есть массив объектов, где каждый объект содержит профили пользователей. Этот массив выглядит как 👇
Задача состоит в том, чтобы создать новый массив имен профилей, который должен содержать только имя в массиве. Вывод должен быть 👇
давайте попробуем это с обоими подходами.
С циклом For:
Вывод:
сделаем это с картой.
Вывод:
Вы видите, что оба подхода дают один и тот же результат, но Map более четкий и короткий, чем цикл for. Ниже приведены причины, почему это так.
- Карта возвращает новый массив. Это означает, что любое значение, записанное в операторе return, может быть сохранено в массиве.
- Точно так же карта array.filter также может запускать функцию обратного вызова на каждой итерации. Это означает, что часть логики хранится в функции и передается в качестве аргумента.
- Оператор возврата играет здесь важную роль. Какое бы значение ни возвращалось в каждом операторе, оно помещается в массив profileNames. Вот как карта возвращает новый массив
- Оператор return является ключом к пониманию карты, так как позволяет узнать, что возвращает цикл forEach.
С ForEach:
Вывод:
forEach apporch вернул undefined, потому что он не возвращает новый массив, мы должны использовать метод array.push для сохранения item.name в массиве profileNames на каждой итерации. Его можно использовать как сокращение для циклов.
Обязательно посмотрите, если вы все еще боретесь с пониманием карты и forEach. язык: хинди
Надеюсь, у вас есть причина использовать карту вместо цикла for, однако циклы for работают быстрее, чем map. Спасибо за чтение🙏. Пожалуйста, поделитесь этим, если это было полезно.