Pesquisar objetos de um array em JavaScript
-
Pesquisar objetos em um array usando
forEach()
em JavaScript -
Pesquisar objetos em um array usando o método
find()
em JavaScript
Em JavaScript, trabalhar e armazenar dados dentro de uma estrutura de dados de array é bastante comum. Uma estrutura de dados de array pode assumir várias formas, como números, strings, outro array como um elemento ou objetos. Neste artigo, vamos discutir como pesquisar objetos em um array e vários valores presentes dentro de cada objeto individual.
Aqui, temos um array de objetos com o nome arrayofObjects
. Dentro de cada objeto, existem vários valores representados por um par de valores-chave. Existem 3 pares de valores-chave. As chaves são name
, profession
e company
. Usando essas chaves, poderemos acessar os respectivos valores 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'},
];
um array é representada por colchetes []
enquanto os objetos são representados por colchetes {}
.
Existem algumas maneiras pelas quais você pode localizar objetos em um array. Algumas das formas são mostradas a seguir.
Pesquisar objetos em um array usando forEach()
em JavaScript
A maneira tradicional de localizar objetos em um array é usando um loop forEach()
. Com isso, podemos percorrer cada elemento presente dentro do loop for.
Primeiro, vamos acessar todos os objetos usando forEach()
do array. Mais tarde veremos como acessar valores individuais que estão presentes dentro do objeto. Para imprimir o objeto inteiro do array acima, você pode usar um loop forEach()
. Este loop nos fornecerá duas coisas: o próprio elemento do array e o índice do elemento. Para isso, temos que passar dois parâmetros para forEach()
. Neste caso, precisaremos apenas dos elementos e não do índice, então passaremos um parâmetro, object
. Você pode dar qualquer nome a este parâmetro.
// print name of the people who work at amazon
arrayofObjects.forEach(object => {
console.log(object);
});
Como o loop forEach()
fará um loop por cada elemento, esse elemento será armazenado dentro desta variável object
. Agora, a variável object
conterá todo o objeto do array. Se você imprimir esta variável object
usando o console, ele imprimirá todos os objetos presentes no array.
Produção:
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" }
Temos todos os objetos do array; vamos acessar os valores internos desses objetos. Vamos agora imprimir o nome dos funcionários que trabalham na empresa Amazon
. Para acessar qualquer chave do objeto, podemos usar um ponto após a variável object
e especificar a chave. Por exemplo, para acessar a chave da 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 uma instrução if
, compararemos o valor da chave com a string Amazon
e, se corresponder, entraremos na instrução if
. Depois disso, imprimiremos o nome dos funcionários que trabalham na amazon usando object.name
como mostrado acima. Isso nos dará a saída abaixo.
Produção:
Amazon Employee: Sam
Amazon Employee: James
Como apenas duas pessoas trabalham na Amazon, temos Sam
e James
como saída.
Da mesma forma, podemos imprimir todos os valores de todos os objetos usando as chaves name
, profession
e company
abaixo.
// print every details of a person
arrayofObjects.forEach(object => {
console.log(
object.name + ' is ' + object.profession + ' who works at ' +
object.company);
});
Produção:
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
Pesquisar objetos em um array usando o método find()
em JavaScript
O método find()
é uma maneira alternativa de localizar objetos e seus elementos a partir de um array em JavaScript. O find()
é um método ES6. Este método funciona de forma semelhante ao loop forEach()
, e acessar os elementos dentro do objeto é semelhante ao que vimos antes.
Substitua forEach
por find
no seu código e estará pronto para prosseguir. O código a seguir também imprimirá todos os objetos do array.
arrayofObjects.find(object => {
console.log(object);
});
Produção:
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" }
Da mesma forma, também podemos acessar todos os valores do objeto do array usando suas respectivas chaves, como segue.
arrayofObjects.find(object => {
console.log(
object.name + ' is ' + object.profession + ' who works at ' +
object.company);
});
Produção:
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
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedInArtigo relacionado - JavaScript Object
- Comparar objetos em JavaScript
- Converter objeto em string em JavaScript
- Converter objeto JavaScript em JSON
- Declaração de array vs objeto de JavaScript
- Encontre o índice do objeto no array JavaScript