Руслан Куянец | Reactify
5.86K subscribers
697 photos
52 videos
39 files
277 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Привет всем! Сегодня поговорим про два очень часто используемых метода массивов в JavaScript: forEach и map. Почему бы их не сравнить, чтобы вы точно знали, когда какой использовать? 🤔

forEach
Этот метод просто проходится по всем элементам массива и делает с ними что-то полезное. Но сам массив при этом не изменяет. Он просто как турист: прошёл, посмотрел, но ничего не тронул.

const numbers = [1, 2, 3];
numbers.forEach(num => {
console.log(num * 2);
});


map
Этот метод похож на forEach, но с одним важным отличием: он создаёт новый массив на основе старого. Как будто клонирует массив, но при этом может что-то изменить в клонах.

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);


Когда что использовать?

Используйте forEach, когда: вам нужно просто что-то сделать с каждым элементом массива, но не нужен новый массив.

Используйте map, когда: вы хотите получить новый массив на основе старого, например, удвоить каждый элемент.

#JavaScript #обучающийПост #Array #methods
👍6🔥1
Применение

Различие заключается в том, что map возвращает новый преобразованный массив, а forEach позволяет просто итерироваться по массиву и добавлять свою логику.

В примере мы решили одну и ту же задачу разными методами.

В данном случае map является предпочтительным.

#JavaScript #обучающийПост #Array #methods
👍7🔥3👌1
Мутирующие и не мутирующие методы массивов.

В JavaScript есть методы, которые изменяют исходный массив, и такие, что оставляют его в покое, создавая новый. Разберемся, в чем разница.

Мутирующие Методы

push - добавляет элементы в конец массива.
pop - удаляет последний элемент массива.
splice - удаляет, заменяет или добавляет элементы.

Не Мутирующие Методы

slice - возвращает новый массив, "нарезая" старый.
map - создает новый массив, преобразуя каждый элемент старого.
filter - создает новый массив с элементами, которые прошли проверку.

В чем разница?

Мутирующие методы изменяют исходный массив, а не мутирующие - не изменяют.

Хороший пример: slice и splice. Оба вырезают кусок массива, но splice изменит исходный массив, а slice оставит его нетронутым.

#обучающийПост #JavaScript #Array #methods
🔥6👍2
Когда массив приходит в функцию, лучше его не трогать. Вместо этого, создайте новый массив и вносите в него нужные изменения.

Это избавит вас от головной боли, если исходный массив используется ещё где-то в программе.

И вот это именно то, что называют иммутабельностью. Это не просто модное словечко, это хорошая практика. Функции, которые не меняют входные данные, называют чистыми. Они проще в отладке и тестировании.

Есть мутирующие методы sort(), reverse(), splice(), недавно были добавленны новые методы toSorted(), toReversed(), toSpliced(). Они как раз не мутируют массив, а создают новый.

Раньше нам приходилось с помощью ... (spread operator) создавать новый массив.
Каждый раз, когда этот код выполняется, создаётся новый массив, что потребляет дополнительную память. К тому же, метод .sort() сам по себе тоже требует ресурсов для выполнения сортировки.

const numbers = [3, 1, 4];
const sortedNumbers = [...numbers].sort();


Теперь мы можем использовать toSorted():

const numbers = [3, 1, 4];
const sortedNumbers = numbers.toSorted();


#обучающийПост #JavaScript #Array #methods
🔥4👍2
Новички часто делают так в React, забывают про иммутабельность. Может вызвать непредвиденные ошибки или поведение приложения.

Раньше делали так (spread оператор):
[...people].sort()

Теперь же можно делать так:
people.toSorted()

#code #JavaScript #Array #methods
👍7
Реализация метода filter()

Метод filter() создаёт новый массив со всеми элементами исходного массива, которые удовлетворяют условию, заданному в функции обратного вызова.

#javascript #array #filter #methods
👍153🤝2🔥1