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

567
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 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