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

146
Vistas
Enhebrar conjuntos de datos relacionales juntos

Estoy llamando a una API donde la respuesta reduce la repetición con una estructura de datos relacional donde un conjunto de datos se refiere a un segundo conjunto. Aquí hay un ejemplo de la estructura:

 { products: [ { name: 'Wine', restrictions: ['age'], }, { name: 'Pain killers', restrictions: ['bulk-limit'], }, { name: 'Chocolate', restrictions: [], }, ], restrictions: [ { type: 'age', minAge: 18, }, { type: 'bulk-limit', maxQuantity: 2, }, ], }

El consumidor necesita unir estos datos usando los products que contienen una matriz de restrictions de string que se relacionan con los datos en la matriz de restrictions . Mi primera pregunta es, ¿esta estructura de datos tiene un nombre común?

En segundo lugar, he escrito una función para unir los datos en una sola matriz de productos:

 function mapRestrictionsToProducts(response: ProductsResponse): Product[] { let restrictionMap = new Map<string, Restriction>(); response.restrictions.forEach((restriction) => { switch (restriction.type) { case 'age': return restrictionMap.set('age', { type: 'age', minAge: restriction.minAge, }); case 'bulk-limit': return restrictionMap.set('bulk-limit', { type: 'BULK_BUY_LIMIT', maxQuantity: restriction.maxQuantity, }); default: console.warn('Unknown restriction', restriction); return; } }); return response.products.map(p => { let product: Product = { name: p.name, restrictions: p.restrictions.reduce<Restriction[]>( (prev, curr) => { let mappedRestriction = restrictionMap.get(curr); if (mappedRestriction) { prev.push(mappedRestriction); } return prev; }, [] ), }; return product; }); }

Aunque esta función hace lo que se necesita, contiene dos mapas de matriz, uno de los cuales contiene una reducción, y se siente demasiado complejo. ¿Hay mejores opciones con las que iterar sobre estos datos y producir el mismo resultado?

about 4 years ago · Juan Pablo Isaza
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