Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

111
Vistas
Filtrar objeto basado en claves y comparar con matriz

Actualmente tengo un objeto que contiene una clave con múltiples valores.

También tengo una matriz que contiene una verificación de clave simple, es decir ["random", "three"] .

Quiero devolver mainData pero solo con el objeto y los datos de lo que está en la matriz, es decir ["random", "three"]

Código actual:

 const mainData = { random: { name: "Random Entity", date: "05/04/2022", startTime: "19:00", finishTime: "00:00", }, one: { name: "One Entity", date: "16/04/2022", startTime: "16:00", finishTime: "20:00", }, three: { name: "Three Entity", date: "19/04/2022", startTime: "10:00", finishTime: "11:00", }, }; export default mainData;

Salida deseada

 const mainData = { random: { name: "Random Entity", date: "05/04/2022", startTime: "19:00", finishTime: "00:00", }, three: { name: "Three Entity", date: "19/04/2022", startTime: "10:00", finishTime: "11:00", }, };

Intentar:

 let filterKey = 'random'; const result = Object.entries(mainData).filter(([k, v]) => k== filterKey);

Esto funciona solo como una búsqueda única, no como una búsqueda de matriz.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Asigne la matriz a una matriz de entradas ( [[key,val],[key,val],...] ) y pásela a través de Object.fromEntries()

 const mainData = {"random":{"name":"Random Entity","date":"05/04/2022","startTime":"19:00","finishTime":"00:00"},"one":{"name":"One Entity","date":"16/04/2022","startTime":"16:00","finishTime":"20:00"},"three":{"name":"Three Entity","date":"19/04/2022","startTime":"10:00","finishTime":"11:00"}} const filters = ["random", "nope", "three"] const result = Object.fromEntries( filters .filter( key => key in mainData // only include keys that exist in mainData ) .map( key => [ key, mainData[key] ] ) ) console.log(result)
 .as-console-wrapper { max-height: 100% !important; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si conoce las claves que le gustaría excluir, puede usar este enfoque:

 const mainData = { random: { name: "Random Entity", date: "05/04/2022", startTime: "19:00", finishTime: "00:00", }, one: { name: "One Entity", date: "16/04/2022", startTime: "16:00", finishTime: "20:00", }, three: { name: "Three Entity", date: "19/04/2022", startTime: "10:00", finishTime: "11:00" } }; const {one, ...desiredData} = mainData; console.log( desiredData );

Alternativamente, si tiene las claves de filtro, puede map() las claves a [key, value] , desde [key,mainData[key]] , luego crear un objeto a partir de estos pares key-value usando Object.fromEntries() como en la demostración a continuación:

 const mainData = { random: { name: "Random Entity", date: "05/04/2022", startTime: "19:00", finishTime: "00:00", }, one: { name: "One Entity", date: "16/04/2022", startTime: "16:00", finishTime: "20:00", }, three: { name: "Three Entity", date: "19/04/2022", startTime: "10:00", finishTime: "11:00" } }; const desiredData = Object.fromEntries( ["random", "three"].map(f => [f, mainData[f]]) ); console.log( desiredData );

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda