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

134
Vistas
Filtra una matriz de objetos por claves en Javascript

Revisé varias publicaciones similares sobre el filtrado de la matriz en función de las claves e intenté implementarlo también, pero no pude obtener la respuesta correcta. Aquí está mi código -

 const data = [{ dnum: "061806", enddate: "2022-05-31", fnum: 0.7, role: "MP", startdate: "2022-01-13", }, { dnum: "061806", enddate: "2022-05-31", fnum: 0.786, role: "MP", startdate: "2022-01-13", }] function copyObjectProps(source, keys) { let newObject = {} keys.forEach(function(key) { newObject[key] = source[key] }) return newObject } let filteredObject = copyObjectProps(data, ['dnum', 'role', 'fnum']) console.log(filteredObject)

Estoy obteniendo el siguiente resultado:

 { dnum: undefined, role: undefined, fnum: undefined }

Pero espero que sea algo como esto:

 [{ dnum: "061806", fnum: 0.7, role: "MP", }, { dnum: "061806", fnum: 0.786, role: "MP", }]

¿Alguien podría decirme qué estoy haciendo mal exactamente?

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

0

ver este artículo

 const data = [{ dnum: "061806", enddate: "2022-05-31", fnum: 0.7, role: "MP", startdate: "2022-01-13", },{ dnum: "061806", enddate: "2022-05-31", fnum: 0.786, role: "MP", startdate: "2022-01-13", }] function selectProps(props){ return function(obj){ const newObj = {}; props.forEach(name =>{ newObj[name] = obj[name]; }); return newObj; } } let filteredObject1 = data.map(selectProps(['dnum', 'role','fnum'])) let filteredObject2 = data.map(selectProps(['dnum','fnum'])) console.log(filteredObject1) console.log(filteredObject2)

edite si quiere cambiar los nombres de las teclas, hice algo como esto

 const data = [{ dnum: "061806", enddate: "2022-05-31", fnum: 0.7, role: "MP", startdate: "2022-01-13", },{ dnum: "061806", enddate: "2022-05-31", fnum: 0.786, role: "MP", startdate: "2022-01-13", }] function selectProps(props){ return function(obj){ const newObj = {}; props.forEach(el =>{ newObj[el[1]] = obj[el[0]]; }); return newObj; } } let filteredObject = data.map(selectProps([['dnum','DNUM'],['fnum','fnum'],['role','Role Name']])) //if dont want to change key name send like this ['dnum','dnum'] console.log(filteredObject)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Casi lo has clavado. Esto es lo que necesita cambiar para que funcione:

 // modify this line let filteredObject = copyObjectProps(data, ['dnum', 'role', 'fnum']) // to this const filteredObject = data.map(item => { return copyObjectProps(item, ['dnum', 'role', 'fnum'])) }

Esto es lo que sucedió:

  1. Estás construyendo el nuevo objeto correctamente.
  2. Te has perdido que necesitas una Matriz de Objetos. map te está dando la matriz, tu método te está dando el objeto correcto. ¡Buena suerte! 🙂
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