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

102
Visualizações
La mejor manera de filtrar un conjunto de datos con javascript

La idea era consultar un conjunto de datos con parámetros de cadena de consulta. Solo quiero que los "registros" coincidan solo con lo que se consultó.

conjunto de datos

 { 1111: { Category: "Education" Role: "Analyst" } 2222: { Category: "Communications and Media" Role: "Analyst" } 3333: { Category: "Public Sector" Role: "Something else" } 4444: { Category: "Public Sector" Role: "Something else" } ... } [[Prototype]]: Object

Estoy enviando qString

 Category: (2) ['Communications and Media', 'Education'] Role: ['Analyst'] length: 0 [[Prototype]]: Array(0)

Me gustaría repetir eso y filtrar/reducir para que solo tenga registros que coincidan. Una especie de and en lugar de un or .

dataSet es un objeto de objetos. ¿Pensamientos? Gracias por adelantado.

 export const Filtered = (qStrings, dataSet) => { const filtered = []; Object.entries(qStrings).forEach(([field]) => { qStrings[field].forEach((value) => { filtered.push( ..._.filter(dataSet, (sess) => { if (sess[field] && sess[field].toString() === value.toString()) { return sess; } }) ); }); }); return _.uniq(filtered); };
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

caramba, lo descubrí con un colega que es mucho más inteligente que yo guiño Jess!

 export const Filtered = (qStrings, dataSet) => { let filtered = []; Object.entries(qStrings).forEach(([field], idx) => { let source = filtered; if (idx === 0) { source = dataSet; } filtered = _.filter(source, (sess) => { return sess[field] && sess[field].includes(qStrings[field]); }); }); return _.uniq(filtered); };

Ahora a limpiar esto.

about 4 years ago · Juan Pablo Isaza Relatório

0

No estoy seguro de si esto resuelve su problema exactamente, pero puede aplicar esta lógica sin mutación para una función mucho más limpia.

 export const matches = (qStrings, dataSet) => Object.entries(dataSet).reduce((acc, [key, value]) => Object.entries(value).every(([rKey, rValue]) => qStrings[rKey]?.includes(rValue)) ? { ...acc, [key]: value } : acc, {});

Esto devolverá los registros 1111 y 2222 porque coinciden con una de las categorías y el rol en qStrings.

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