Сегодня, пока на улице светило солнце и Фрейя дремала, я узнал о карте и сокращении.

Map() — создает новый массив с результатами вызова предоставленной функции для каждого элемента массива. В то время как фильтр удаляет некоторые элементы массива, карта преобразует элементы. Метод map преобразует аранжировку, применяя функцию ко всем ее элементам, и создает новый массив той же длины. Опять же, карта может делать то же, что и цикл For, но с меньшим и более аккуратным кодом.

var numbers = [5, 10, 15, 20, 25];
var triples = numbers.map(function(num){
 return num * 3;
});
//this will transform all the numbers by three
triples;// [15,30,45,60,75]

В лабораторной части курса я применяю функцию map() на практике. Одной из задач было создать новый массив с приветствием, написанным заглавными буквами. Код для него следующий:

var greetings = ['hey', 'hi', 'thanks'];

var shout = greetings.map (function(greet){
    return greet.toUpperCase();
})

shout;
// ["HEY", "HI", "THANKS"]

Я чувствую себя лучше в своем понимании как фильтра, так и карты. Теперь о сокращении, о котором они упоминают, может потребоваться немного больше, чтобы разобраться.

Reduce() — метод сокращения применяет функцию к аккумулятору и каждому значению массива (слева направо), чтобы уменьшить его до одного значения.

Синтаксис следующий

array.reduce(function(accumulator, currentValue, currentIndex, arr)initialValue)

Пример:

var numbers = [5, 10, 15, 20, 25];
numbers.reduce(function(x, y) {
 return x + y;
});
//returns 75 which is the sum of all the numbers in the array

Пройдя через сокращение несколько раз, я думаю, что постепенно получаю это. Я сделал несколько упражнений, которые включали цепочку как с картой, так и с методом сокращения.

И это от меня сегодня :)