Buscar objetos desde un array en JavaScript

  1. Buscar objetos en un array usando forEach() en JavaScript
  2. Buscar objetos en un array usando el método find() en JavaScript

En JavaScript, trabajar con datos y almacenarlos dentro de una estructura de datos de array es bastante común. Una estructura de datos de array puede tomar varias formas, como números, cadenas, otra matriz como elemento u objetos. En este artículo, analicemos cómo buscar objetos en un array y varios valores presentes dentro de cada objeto individual.

Aquí, tenemos un array de objetos con el nombre arrayofObjects. Dentro de cada objeto, hay varios valores representados por un par clave-valor. Hay 3 pares clave-valor. Las claves son name, profession y company. Usando estas claves, podremos acceder a los valores respectivos de cada objeto individual.

var arrayofObjects = [
        { name:"Adam", profession:"Engineer", company: "Google" },
        { name:"Sam", profession:"Manager", company: "Amazon" },
        { name:"Gerogia", profession:"Designer", company: "Netflix" },
        { name:"Kate", profession:"Engineer", company: "Microscoft" },
        { name:"James", profession:"Sales", company: "Amazon" },
    ];

un array está representada por corchetes [] mientras que los objetos están representados por llaves {}.

Hay algunas formas de buscar objetos en un array. Algunas de las formas se muestran a continuación.

Buscar objetos en un array usando forEach() en JavaScript

La forma tradicional de encontrar objetos en un array es utilizando un bucle forEach(). Con esto, podemos recorrer cada elemento presente dentro del bucle for a.

Primero, accedamos a todos los objetos usando forEach() del array. Más adelante veremos cómo acceder a los valores individuales que están presentes dentro del objeto. Para imprimir todo el objeto del array anterior, puede utilizar un bucle forEach(). Este bucle nos proporcionará dos cosas: el elemento en sí del array y el índice del elemento. Para eso, tenemos que pasar dos parámetros a forEach(). En este caso, solo necesitaremos los elementos y no el índice, por lo que pasaremos un parámetro, objeto. Puede dar cualquier nombre a este parámetro.

//print name of the people who work at amazon
arrayofObjects.forEach(object =>{
    console.log(object);
});

Como el bucle forEach() recorrerá cada elemento, ese elemento se almacenará dentro de esta variable object. Ahora la variable object contendrá todo el objeto del array. Si imprime esta variable objeto usando la consola, imprimirá todos los objetos presentes en el array.

Producción:

Object { name: "Adam", profession: "Engineer", company: "Google" }
Object { name: "Sam", profession: "Manager", company: "Amazon" }
Object { name: "Gerogia", profession: "Designer", company: "Netflix" }
Object { name: "Kate", profession: "Engineer", company: "Microsoft" }
Object { name: "James", profession: "Sales", company: "Amazon" }

Tenemos todos los objetos del array; accedamos a los valores internos de estos objetos. Imprimamos ahora el nombre de los empleados que trabajan en la empresa Amazon. Para acceder a cualquier clave desde el objeto, podemos usar un punto después de la variable object y especificar la clave. Por ejemplo, para acceder a la clave de la empresa, usaremos object.company.

//print name of the people who work at amazon
arrayofObjects.forEach(object =>{
    if(object.company === "Amazon"){
        console.log("Amazon Employee:", object.name);
    }
});

Usando una sentencia if, compararemos el valor de la clave con la cadena Amazon y si coincide, entraremos dentro de la sentencia if. Después de eso, vamos a imprimir el nombre de los empleados que trabajan en amazon utilizando object.name como se muestra arriba. Esto nos dará la siguiente salida.

Producción:

Amazon Employee: Sam
Amazon Employee: James

Dado que solo dos personas trabajan en Amazon, obtenemos Sam y James como resultado.

Del mismo modo, podemos imprimir todos los valores de todos los objetos utilizando las teclas name, profession y company a continuación.

//print every details of a person
arrayofObjects.forEach(object =>{
    console.log(object.name + " is " + object.profession +" who works at " + object.company);
});

Producción:

Adam is Engineer who works at Google
Sam is Manager who works at Amazon
Georgia is a Designer who works at Netflix
Kate is Engineer who works at Microsoft
James is Sales who works at Amazon

Buscar objetos en un array usando el método find() en JavaScript

El método find() es una forma alternativa de encontrar objetos y sus elementos de un array en JavaScript. El find() es un método ES6. Este método funciona de manera similar al bucle forEach(), y acceder a los elementos dentro del objeto es similar a lo que hemos visto antes.

Reemplace forEach con find en su código y estará listo para comenzar. El siguiente código también imprimirá todos los objetos del array.

arrayofObjects.find(object =>{
    console.log(object);
});

Producción:

Object { name: "Adam", profession: "Engineer", company: "Google" }
Object { name: "Sam", profession: "Manager", company: "Amazon" }
Object { name: "Gerogia", profession: "Designer", company: "Netflix" }
Object { name: "Kate", profession: "Engineer", company: "Microsoft" }
Object { name: "James", profession: "Sales", company: "Amazon" }

De manera similar, también podemos acceder a cada valor del objeto desdel array usando sus respectivas claves de la siguiente manera.

arrayofObjects.find(object =>{
    console.log(object.name + " is " + object.profession +" who works at " + object.company);
});

Producción:

Adam is Engineer who works at Google
Sam is Manager who works at Amazon
Georgia is Designer who works at Netflix
Kate is Engineer who works at Microsoft
James is Sales who works at Amazon

Artículo relacionado - JavaScript Object

  • Obtener la clave de un objeto JavaScript
  • Artículo relacionado - JavaScript Array

  • Suma de un array en JavaScript
  • Convertir array en cadena en JavaScript