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

82
Vistas
Buscar a través de una matriz de objetos que contienen matrices de objetos de manera eficiente

Actualmente estoy buscando a través de una matriz de objetos que contiene una matriz de objetos, la estructura de datos tiene el siguiente aspecto:

 const category = 'general' const field = 'rating' const schema = { categories: [ { name: 'general', label: 'General', fields: [ { name: 'id', label: 'Market Street ID', type: 'string' }, { name: 'rating', label: 'Rating', type: 'number' } ] }, { name: 'location', label: 'Location', fields: [ { name: 'search', label: 'Query Parameters', type: 'string' } ] } ] }

El resultado esperado es buscar en la matriz de categorías un nombre de categoría determinado (en este caso, "general") y luego buscar en los campos un nombre de campo determinado (en este caso, "calificación") y devolver el tipo asociado con el campo. . Lo he logrado haciendo lo siguiente:

 const type = schema.categories .filter((cat) => cat.name === category) .map((cat) => { const fieldData = cat.fields.find((f) => f.name === field) return fieldData.type }) console.log(type[0])

Me pregunto si hay una forma más eficiente de buscar a través de la matriz de objetos dentro de una matriz de objetos, posiblemente sin que el tipo se devuelva en una matriz.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Si solo necesita la primera coincidencia, puede usar Array#find junto con el encadenamiento opcional .

 const category="general",field="rating",schema={categories:[{name:"general",label:"General",fields:[{name:"id",label:"Market Street ID",type:"string"},{name:"rating",label:"Rating",type:"number"}]},{name:"location",label:"Location",fields:[{name:"search",label:"Query Parameters",type:"string"}]}]}; const type = schema.categories.find(cat => cat.name === category) ?.fields.find(f => f.name === field).type; console.log(type);

about 4 years ago · Santiago Trujillo 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