Arrays JavaScript: 14 Métodos que te harán la vida más facil.

Escrito originalmente por Simon Høiberg.

map

El método map() devuelve un nuevo array que contiene el resultado de llamar a la función pasada como parámetro a todos los elementos del array sobre el que se invoca.

const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(value => value * 2);

console.log(doubled);
// [2, 4, 6, 8, 10]

forEach

El método forEach() ejecuta la función pasada como parámetro para todos los elementos del array. La función pasada no espera ningún valor de retorno y le mismo metodo forEach() devuleve igualmente undefined.

const numbers = [1, 2, 3, 4, 5, 6];
const allAboveThere = numbers.forEach(
    n => console.log(n)
);
// 1 2 3 4 5 6

filter

El método filter() devuelve un nuevo array que contiene solo los elementos que 'pasan el test' enunciaod en la función pasada como parámetro (callback function). Llamamos a este tipo de callback una función de predicado.

const numbers = [1, 2, 3, 4, 5, 6];
const even = numbers.filter(n => n % 2 === 0);

console.log(even);
// [2, 4, 6]

find

El método find() se comporta de forma similar a filter() pero solo devuelve un único elemento. Este método devuelve el primer elemento del array que cumpla el predicado que se pasa como parámetro, o undefined si ninguno lo cumple.

const numbers = [1, 2, 3, 4, 5, 6];
const three = numbers.filter(n => n === 3);

console.log(three);
// 3

findIndex

El método findIndex() se comporta de forma similar al método find() pero devolvera el número de índice en vez del valor del elemento. Este método devolverá el índice del primer elemento del array que cumpla el predicado que se pasa como parámetro, o -1 si ninguno lo cumple.

const numbers = [2, 9, 3, 5, 1, 8];
const indexOfThree = numbers.filter(n => n === 3);

console.log(indexOfThree);
// 2

reduce

El método reduce() toma una función callback con al menos 2 argumentos: Un acumulador y el elemento activo. En cada iteración aplica la función pasada como parámetro al acumulador y a cada valor del array, que se recorre de izquierda a derecha, para reducirlo a un único valor.

const numbers = [1, 2, 3, 4, 5, 6];
const sum = numbers.reduce((acc, n) => acc + n);

console.log(sum);
// 21

some

El método some() devuelve true si al menos un elemento del array cumple con el predicado que se pasa como parámetro.

const numbers = [1, 2, 3, 4, 5, 6];
const hasAboveThree = numbers.some(n => n > 3);

console.log(hasAboveThree);
// true

every

El método every() devuelve true si todos los elementos del array cumplen el predicado que recibe como parámetro.

const numbers = [1, 2, 3, 4, 5, 6];
const hasAboveThree = numbers.every(n => n > 3);

console.log(hasAboveThree);
// false

includes

El método includes() determina si el array contiene el valor buscado y devuelve true o false según sea el caso.

const numbers = [1, 2, 3, 4, 5, 6];
const hasTheNumberFour = numbers.includes(4);

console.log(hasTheNumberFour);
// true

fill

El método fill() asigna un valor estático a todos los elementos del array entre las posiciones inicio y fin.

const numbers = [1, 2, 3, 4, 5, 6];
const populateWithFour = numbers.fill(4);

console.log(populateWithFour);
// [4, 4, 4, 4, 4, 4]

reverse

El método reverse() invierte el orden de los elementos de un array (el primero pasa a ser el último y el último a ser el primero) en el propio array. Este método modifica el array.

const numbers = [1, 2, 3, 4, 5, 6];
const reversed = numbers.reverse();

console.log(reversed);
// [6, 5, 4, 3, 2, 1]

flat

El método flat(depth) crea un nuevo array con todos los elementos de sub-array concatenados recursivamente hasta la profundidad especificada.

El nivel de profundidad que especifica qué tan profunda debe aplanarse una estructura de arrays anidado. El valor predeterminado es 1.

const numbers = [[1, 2], [[3], [4]], [5, 6]];
const flattened = numbers.flat(2);

console.log(flattened);
// [1, 2, 3, 4, 5, 6]

flatMap

El método flatMap() primero mapea cada elemento usando una función de mapeo, luego aplana el resultado en una nueva matriz. Es idéntico a un map() seguido de un flat() de profundidad 1, pero flatMap es a menudo útil y la fusión de ambos en un método es ligeramente más eficiente.

const numbers = [[1], [2], [3], [4], [5], [6]];
const flattenedDoubles = numbers.flatMap((n) => n * 2);

console.log(flattenedDoubles);
// [2, 4, 6, 8, 10, 12]

sort

El método sort() ordena los elementos de un array, modificando éste, y devuelve el array ordenado.

const numbers = [2, 9, 3, 5, 1, 8];
numbers.sort((a, b) => a - b);

console.log(numbers);
// [1, 2, 3, 5, 8, 9]

Basado en el hilo de Twitter 14 Array Methods that will make your life easier escrito por Simon Høiberg y en la documentación de Arrays disponible en MDN web docs.