• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

489
Views
¿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 3 years ago · Santiago Gelvez
2 answers
Answer question

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 3 years ago · Santiago Gelvez Report

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 3 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error