Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
Search for an object in an array using filtering object as a parameter

What's the most efficient way to search for object in an array using another object (not a function).

In javascript there is an array method .find() that accepts a callback to seek an item. How to create a similar function that accepts an object representing an object I want to find (that satisfies provided key-value conditions)? For example:

const array = [
   {
       param1: 'abc',
       param2: 'def',
       param3: 123,
   },
   {
       param1: 'test',
       param2: 'test2',
       param3: 321,
   },
   {
       param1: 'zzz',
       param2: 'test2',
       param3: 333,
   }
]

findInArray(array, {
   param1: 'test',
   param2: 'test2'
}) // must return 2nd object in an array
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Try this code, you can define your filter and loop on the array to find your desired item .

var filter = {
   param1: 'test',
   param2: 'test2'
};
const array = [
   {
       param1: 'abc',
       param2: 'def',
       param3: 123,
   },
   {
       param1: 'test',
       param2: 'test2',
       param3: 321,
   },
   {
       param1: 'zzz',
       param2: 'test2',
       param3: 333,
   }
]

item = array.filter(function(item) {
  for (var key in filter) {
    if (item[key] === undefined || item[key] != filter[key])
      return false;
  }
  return true;
});

console.log(item)

about 4 years ago · Juan Pablo Isaza Relatório

0

You can combine Array.find() with a loop that iterates over your query object's keys:

const array = [{
    param1: 'abc',
    param2: 'def',
    param3: 123,
  },
  {
    param1: 'test',
    param2: 'test2',
    param3: 321,
  },
  {
    param1: 'zzz',
    param2: 'test2',
    param3: 333,
  }
]
, findInArray = (arr, query) => 
  arr.find(el => {
    let result = true
    for(const key in query){
      if(el[key] !== query[key]){
        result = false
        break
      }
    }
    return result
  })

console.log(findInArray(array, {
  param1: 'test',
  param2: 'test2'
}))

console.log(findInArray(array, {
  param1: 'abc',
  param3: 123
}))

console.log(findInArray(array, {
  param1: 'abc',
  param2: 'abc',
  param3: 123
}))

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda