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

565
Vistas
¿Cómo escribir una función que filtre un diccionario cuando se le da un par clave/valor en Javascript?

Tengo un diccionario llamado teamData

 var teamData = { app: { sortCol:"name", sortDir:"asc" }, data: [ { id: 1, name:"Raptors", coachId: 1, coachFirst: "Ken", coachLast: "jenson", coachPhone: "801-333-4444", coachEmail: "ken.jenson@uvu.edu", coachLicenseLevel: 1, league: 1, division: 1 }, { id: 2, name:"Killer Bunnies", coachId: 2, coachFirst: "Peter", coachLast: "Rabbit", coachPhone: "801-333-4444", coachEmail: "peter.rabbit@uvu.edu", coachLicenseLevel: 1, league: 1, division: 2 }, { id: 3, name:"Thunderbirds", coachId: 3, coachFirst: "Harry", coachLast: "DirtyDog", coachPhone: "801-333-4444", coachEmail: "harry.dirty.dog@uvu.edu", coachLicenseLevel: 2, league: 1, division: 2 } ] }

Estoy tratando de escribir una función que tome un objeto clave/valor y devuelva un diccionario filtrado. Entonces si la función es

 let teams = filter({coachLicenseLevel:1});

entonces el resultado esperado es devolver un diccionario filtrado con solo dos elementos que tienen ese par clave/valor

Aquí está la función que tengo hasta ahora, pero no sé cómo obtener el objeto clave.

 filter(filterObj) { const v = Object.values(filterObj); const k = Object.keys(filterObj); const res = teamData.filter(({???}) => v.includes(???)); }

Cualquier ayuda sería apreciada.

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

Si desea filtrar solo la matriz de datos, podría hacer algo como esto:

 function filterArrayByParamAndValue(arr, itemParam, value) { return arr.filter(item => item.itemParam === value) }

Y en su código simplemente reemplace la propiedad data , si

 let teamData = { ...., data: [...filterArrayByParamAndValue(teamData.data, coachLicenseLevel, 1)], .... }

Por supuesto, también debe agregar todas las comprobaciones necesarias en la función de filtro, o incluso agregar una propiedad de objeto para verificar y pasar todo el objeto.

about 4 years ago · Santiago Gelvez Denunciar

0

En lugar de pasar un objeto, puede considerar usar la función de filtro con su lógica de filtro personalizada. Aquí hay un ejemplo para su caso específico:

 let teams = teamData.data.filter(item => item.coachLicenseLevel == 1)
about 4 years ago · Santiago Gelvez 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