Map: O método MAP serve para mapear um array. Mapear ? Sim, com o map, você pode percorrer posição por posição de um array e criar um novo array, alterando tudo que você quiser do array original.
/*
O Map aceita até 3 parâmetros:
const novoArray = arrayOriginal.map((valorAtual, indice, arrayOriginal) => xxx )
1) O Map vai passar por todos os itens do array, e o primeiro parâmetro é cada item, um por vez do array que estamos mapeando. Item OBRIGATÓRIO.
2) O indíce é a posição atual que estamos mapeando. Item OPCIONAL.
3) Uma cópia do array original. Item OPCIONAL.
*/
const numbers = [1, 2, 3, 4];
const double = numbers.map((num) => num * 2);
// double ficou assim... [2, 4, 6, 8];
// numbers continua... [1, 2, 3, 4];
Reduce**: O método REDUCE serve para ‘reduzir’ um array a apenas um item. Como assim ? Ele vai passar item por item no array e no final vai restar apenas um valor.**
/*
O Reduce aceita até 4 parâmetros:
const novoArray = arrayOriginal.reduce(
(acumulador, valorAtual, índice, arrayOriginal) => {
return xxxxx
}, valorInicial);
1) O acumulador, na primeira iteração terá o valor inicial que daremos a ele.
Já nas demais iterações, ele terá o valor que iremos acumular nele. Item OBRIGATÓRIO.
2) O valor do atual elemento sendo iterado. Item OBRIGATÓRIO.
3) O índice do elemento atual. Item OPCIONAL.
4) O array original. Item OPCIONAL.
*/
const numbers = [1, 2, 3, 4, 5];
const total = numbers.reduce((acumulador, atual) => {
return acumulador = acumulador + numero;
}, 0) // repare nesse 0. Ele é o valor inicial que o acumulador receberá
/*
O que aconteceu aqui ? Definimos um valor inicial para o acumulador. Então ele começou a somar número a número dentro do array.
Na primeira iteração foi assim:
acumulador = acumulador(0) + atual(1) -> Agora acumulador valerá 1
Na seginda iteração, agora acumulador vale 1.
acumulador = acumulador(1) + atual(2) -> Agora acumulador valerá 3
*/
// total é igual a 15;
// numbers continua... [1, 2, 3, 4];
Filter**: O método FILTER serve para filtrar um array. Ele passará por todos os valores do array e você decidirá quais valores vão para seu novo array, e quais vão ser descartados.**
/*
const novaArray = arrayOriginal.filter((valorAtual, indice, arrayOriginal) => {
seu código aqui
});
1) O filter vai passar por todos os itens do array, e o primeiro parâmetro é
cada item, um por vez do array que estamos filtrando. Item OBRIGATÓRIO.
2) O indíce é a posição atual que estamos filtrando. Item OPCIONAL.
3) Uma cópia do array original. Item OPCIONAL.
A cada item, fazemos uma 'pergunta' ao código. Se a resposta for verdadeira
naquele item, ele guardará o valorAtual no novo array. Caso seja falso, o valor
será descartado */
const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const pares = numeros.filter(valorAtual => valorAtual % 2 === 0 );
// pares ficou assim... [2, 4, 6, 8, 10];
// numbers continua... [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];