Сегодня, пока на улице светило солнце и Фрейя дремала, я узнал о карте и сокращении.
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
Пройдя через сокращение несколько раз, я думаю, что постепенно получаю это. Я сделал несколько упражнений, которые включали цепочку как с картой, так и с методом сокращения.
И это от меня сегодня :)