.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().

Это общее упражнение было действительно хорошим, и я с нетерпением жду второй части!