• 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

132
Views
¿Cómo agrupar elementos de matriz como un tipo específico de typescript?

digamos que tengo esta matriz:

 const dataUse = [
 { group: 'z', name: 'hello' },
 { group: 'z', name: 'hello2' },
 { group: 'z', name: 'hello3' },
 { group: 'x', name: 'hello1' },
 { group: 'x', name: 'hello2' }
 ];

Quiero agruparlo en grupo y lo hago así:

función de grupo:

 const groupBy = <T, K extends keyof any>(arr: T[], key: (i: T) => K) =>
 arr.netuce((groups, item) => {
 (groups[key(item)] ||= []).push(item);
 return groups;
 }, {} as Record<K, T[]>);

vocación:

 const grouped = groupBy(dataUse, (i) => i.group);

resultado:

 {
x: Array
z: Array
}

Problema:

Necesito poder acceder a las propiedades y, en mi caso, x y z son dinámicos y nunca tendrán el mismo nombre. Así que pensé que necesitaba agrupar mis datos como un tipo de contenedor específico:

 type GroupContainer = {
 group: string;
 items: Array<MyListObj>;
};

La salida deseada sería:

 [
{Group: 'x', items:Array}
{Group: 'z', items:Array}
]

La función auxiliar convierte esto en registros y no estoy seguro de cómo convertirlo en GroupContainer

¿Cómo logro esto?

over 2 years ago · Santiago Trujillo
1 answers
Answer question

0

Object.entries nos dará una matriz con pares clave-valor, por lo que podemos mapearlos y usarlos para nuestro objeto:

 Object.entries(grouped).map(([group, items]) => ({ group, items }))

Patio de juegos

over 2 years ago · Santiago Trujillo 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