Tengo un problema con el que me está costando. Tengo una lista de objetos de ejercicios como a continuación:
exerciseDataList = [ {exerciseType: 'Legs', activity: 'Squats', weight: '180', reps: '10'}, {exerciseType: 'Legs', activity: 'Squats', weight: '180', reps: '10'}, {exerciseType: 'Legs', activity: 'Leg Press', weight: '150', reps: '10'}, {exerciseType: 'Legs', activity: 'Leg Press', weight: '140', reps: '10'}, {exerciseType: 'Chest', activity: 'Bench Press', weight: '180', reps: '10'}, ]Espero convertir lo anterior a lo siguiente:
treeData = [ { 'name':'Legs', 'data': [{'x':'Squats','y':3600}, {'x':'Leg Press', 'y':2900}] }, { 'name':'Chest', 'data': {'x': 'Bench Press', 'y': 1800} } ] Esencialmente data.x es la actividad y data.y es la suma de weight * reps para el mismo tipo de exerciseType y activity .
Me está costando entender esto y me pregunto cuál sería la manera eficiente de hacerlo, ya que la lista de datos de exerciseDataList puede alargarse.
Sé que necesito recorrer la lista de objetos de ejercicio y treeData pero aquí es cuando no estoy seguro de qué hacer a continuación. Siento que para lograr esto necesito 3 bucles for? ¿Cómo haría para hacer esto y hay una mejor solución que O (n ^ 3)? Gracias.
for (let edata of this.getExerciseDataList) { for (let data of this.treeData) { ..... } }