Hice el cálculo de preprocesamiento usando javascript y finalmente tengo las siguientes matrices diferentes.
var medianArray = [{ Thomas: 94, Diana: 94, Claura: 93, Chandler: 91 }]; var q1Array = [ { Thomas: 93, Diana: 94, Claura: 92, Chandler: 91 } ]; var q3Array = [{ Thomas: 95, Diana: 95, Claura: 93, Chandler: 93 }]; var outArray = [{ Thomas: [], Diana: [85, 86, 87, 91], Claura: [94, 94, 94], Chandler: [75, 86] }]; var result = [];ahora, estoy tratando de incorporar una sola matriz con claves y valores significativos en el siguiente formato.
[{"stdName": "Thomas", "q1" : 93, "q3" : 95, "median": 94, "outliers": []}, {"stdName": "Diana", "q1" : 93, "q3" : 95, "median": 94, "outliers": [85, 86, 87, 91]}, {"stdName": "Claura", "q1" : 93, "q3" : 95, "median": 93, "outliers": [94, 94, 94]}, {"stdName": "Chandler", "q1" : 93, "q3" : 95, "median": 91, "outliers": [75, 86]}]He buscado en múltiples recursos en línea y referencias de reduce(), map(), etc., pero de alguna manera no entiendo cómo cambiar las soluciones de nombres clave.
[].concat(q1Array, q3Array, medianArray,outArray).forEach(function (items) { //logic try to add and not getting idea to proceed. if (!this[items]) { result.push(); } }, Object.create(null)); console.log(result);Espero que la gente de JavaScript en Stack Overflow pueda ayudarme con esto.
Si todas las matrices tienen la misma cantidad de nombres, primero puede extraer todos los nombres con Object.keys() . Luego recorra todos los nombres y redúzcalos a su propio objeto.
var medianArray = [{ Thomas: 94, Diana: 94, Claura: 93, Chandler: 91 }]; var q1Array = [ { Thomas: 93, Diana: 94, Claura: 92, Chandler: 91 } ]; var q3Array = [{ Thomas: 95, Diana: 95, Claura: 93, Chandler: 93 }]; var outArray = [{ Thomas: [], Diana: [85, 86, 87, 91], Claura: [94, 94, 94], Chandler: [75, 86] }]; const names = Object.keys(medianArray[0]); const result = names.reduce((acc, name) => { acc.push({ stdName: name, q1: q1Array[0][name], q3: q3Array[0][name], median: medianArray[0][name], outliers: outArray[0][name], }); return acc; }, []); console.log(result);