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

0

127
Views
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?

almost 3 years ago · Juan Pablo Isaza
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