Algunos de los métodos más útiles que suelo usar para trabajar con arrays son filter(), find() y some() Si no los conocés en esta publicación te voy a enseñar a usarlos.
Supongamos que tenemos el siguiente array:
const lenguajes = [
{nombre: "Javascript", creacion: 1995},
{nombre: "Java", creacion: 1995},
{nombre: "C#", creacion: 2000},
{nombre: "Python", creacion: 1991},
{nombre: "Ruby", creacion: 1995},
{nombre: "PHP", creacion: 1995},
{nombre: "Cobol", creacion: 1959}
];
filter()
Este método devuelve un array nuevo, que sale como filtro de otro dependiendo de ciertos criterios.
Por ejemplo: si yo quisiera recuperar sólo aquellos lenguajes de programación creados en 1995:
const lenguajes_1995 = lenguajes.filter(e => e.creacion === 1995);
console.log(lenguajes_1995);
/*
[
{"nombre": "Javascript", "creacion": 1995},
{"nombre": "Java", "creacion": 1995},
{"nombre": "Ruby", "creacion": 1995},
{"nombre": "PHP", "creacion": 1995}
]
*/
find()
También puede suceder que necesitemos buscar un único elemento dentro de una lista, por ejemplo el elemento que tenga como nombre: «Javascript»:
const lenguaje = lenguajes.find(e => e.nombre === "Javascript");
console.log(lenguaje);
/*
{"nombre": "Javascript", "creacion": 1995}
*/
Tener en cuenta que find() va a devolver el primero elemento que encuentre, si hubiese más, no los va a traer. Y a diferencia de filter() no devuelve un array, sino la posición del elemento.
Además, en caso de que no existiese ningún elemento que cumpla con esa condición, va a devolver undefined:
const lenguaje = lenguajes.find(e => e.nombre === "C++");
console.log(lenguaje);
//No se encuentra en la lista C++, así que devuelve undefined.
some()
Ahora, si yo quisiera buscar si un elemento se encuentra dentro de un array sin importar ese elemento en sí, podría usar el método some()
Éste devuelve true si alguno de los elementos cumple con el criterio de búsqueda:
const lenguaje = lenguajes.some(e => e.nombre === "Javascript");
console.log(lenguaje);
//Devuelve true
Y false si no es así:
const lenguaje = lenguajes.some(e => e.nombre === "C");
console.log(lenguaje);
//Devuelve false