Cómo encontrar elementos coincidentes en una matriz usando JavaScript

La semana pasada, analizamos en detalle las matrices de JavaScript y cómo usarlas para almacenar múltiples valores en una sola variable. Hoy, aprenderá un truco útil para encontrar todos los elementos coincidentes en una matriz utilizando el Array.filter() método.

El Array.filter() El método crea una nueva matriz al iterar sobre todos los elementos de una matriz y devuelve aquellos que pasan una determinada condición como una matriz.

La función de devolución de llamada que se pasa como argumento acepta hasta tres parámetros opcionales. El primero es el elemento actual en la iteración, el segundo es el índice del elemento actual en la matriz y el tercero es la matriz misma.

En el cuerpo de devolución de llamada, puede probar si el elemento actual coincide con lo que está buscando y devolver un valor booleano (true o false ) en consecuencia.

Aquí hay un ejemplo:

const values = [15, 45, 22, 19, 55, 62, 78];

// find all values > 25
const greaterThan25 = values.filter(item => {
    return item > 25;
});

// find all values < 25
const lessThan25 = values.filter(item => item < 25);

console.log(greaterThan25);
// [45, 55, 62, 78]

console.log(lessThan25);
// [15, 22, 19]

El Array.filter() El método no se limita solo a matrices primitivas. Incluso puede usarlo para filtrar una variedad de objetos como se muestra en el siguiente ejemplo:

const users = [
    {
        name: 'John Deo',
        age: 35
    },
    {
        name: 'Emma Kel',
        age: 24
    }
    ,
    {
        name: 'Kristy Adam',
        age: 42
    }
];

// find all users older than 40 years
const filteredUsers = users.filter(user => {
    return user.age >= 40;
});

console.log(filteredUsers);
// [{ name: 'Kristy Adam', age: 42 }]

El Array.filter() el filtro funciona en todos los navegadores modernos e Internet Explorer 9 y superior. Sin embargo, puede usar un polyfill para admitir IE6 y superior.

Eche un vistazo a esta guía para obtener más información sobre las matrices de JavaScript y sus métodos.