.map(), .sort(), .filter() и .reduce()
Если вы когда-нибудь тестировали код, а затем смотрели на решения, я не думаю, что мне нужно подробно знакомить вас с этими функциями. Я лично люблю их, они делают код более гладким. Это было первое упражнение из JavaScript 30, где я выполнял упражнение перед просмотром видео.
Массив.прототип.фильтр()
После того, как вы предоставите массив, метод filter()
возвращает новый массив, содержащий элементы, которые прошли условие, установленное в функции обратного вызова. "Читать далее".
const arr = [1, 2, 3, 4, 5] const filtered = arr.filter(number => number%2) // filtered = [1, 3, 5]
Массив.прототип.карта()
Map() возвращает новый массив на основе предоставленной функции обратного вызова. Если вы спрашиваете, в чем разница между map()
и forEach()
, у меня есть ответ. map()
возвращает массив, и вы можете связать другую функцию поверх него, в то время как forEach()
закрывает канал. Допустим, мы хотим отсортировать новый массив:
const arr = [1, 3, 4, 5, 2] const mapped = arr .map(number => number + 1) .sort() // mapped = [2, 3, 4, 5, 6] const forEached = arr .forEach(number => number + 1) .sort() // Uncaught TypeError: Cannot read property 'sort' of undefined
Массив.прототип.сортировка()
sort()
сортирует массив и возвращает его обратно с измененными значениями. Я не буду вдаваться в механику этого здесь, в основном потому, что сортировка всегда меня смущает, и будет лучше, если вы просто прочитаете больше об этом здесь.
Массив.прототип.уменьшить()
А свою любимую оставил напоследок. Метод reduce()
применяет функцию к аккумулятору и каждому элементу массива (слева направо), чтобы уменьшить его до одного значения. (Мне стало лень, пожалуйста, не обращайте внимания, что я просто украл определение MDN).
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk']; const transportation = data.reduce(function(obj, item) { if (!obj[item]) { obj[item] = 0; } obj[item]++; return obj; }, {});
Приведенный выше код принимает массив данных и передает его методу reduce()
. Мы начинаем с пустого объекта, и метод подсчитывает появление каждого элемента в массиве.
Это конкретное упражнение действительно помогло мне с несколькими тестами кода, с которыми я боролся, так что ура для новых знаний!
Еще один новый трюк, который я изучил, это console.table()
, который печатает таблицу в консоли, а не обычный объект, который вы получаете с помощью console.log().
Это общее упражнение было действительно хорошим, и я с нетерпением жду второй части!