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

72
Vistas
obtener calificaciones de estudiantes con tipos combinando tres matrices pero devolvió una función es una cadena

Tengo tres matrices: estudiantes, tipo y marcas. Quiero combinarlos en una matriz llamada student_marks para obtener las calificaciones de cada estudiante con tipos de marcas. Pero la función de marca de objeto se devuelve como una cadena y no se ejecuta en javascript como se muestra en el resultado del código de imagen.

Quiero obtener este resultado:

 {student: '2'; totalmarks: '0'; mark: {'typeid'="marks" ,'typeid'="marks" , 'typeid'="marks" }}

Entonces, como un todo, la matriz de resultados que es student_marks se verá así:

 {student: '2'; totalmarks: '0'; mark: {'1'="1" ,'2'="2" , '3'="3" }} {student: '3'; totalmarks: '0'; mark: {'1'="5" ,'2'="4" , '3'="7" }} {student: '4'; totalmarks: '0'; mark: {'1'="8" ,'2'="7" , '3'="9" }}

Aquí está mi ejemplo de código escrito en js:

 let std = [ 1, 2, 3, 4 ]; let marks = [{ type: '2', marks: '2' }, { type: '1', marks: '1' }, { type: '3', marks: '3' }, { type: '2', marks: '2' }, { type: '1', marks: '1' }, { type: '3', marks: '3' }, { type: '2', marks: '2' }, { type: '1', marks: '1' }, { type: '3', marks: '3' }, { type: '2', marks: '2' }, { type: '1', marks: '1' }, { type: '3', marks: '3' } ]; let type = [2, 1, 3]; let ri = 0; let student_marks = []; let registrationIds = []; let total_marks = []; std.forEach(item => { registrationIds[ri] = item; // type[ri]=marks[ri]; // marks:marks[ri]; student_marks.push({ student: item, mark: () => { for (let i = 0; i < marks_type.length; i++) { // m[marks_type[i]]=marks[i][ri]; m = [{ type: marks_type[i], marks: marks[i]['marks'], }]; // m:{ // marks_type[i]=marks[i][ri]; // }; } console.log(m); return m; }, // totalmarks: total_marks[ri].value, }); // totalmark[ri]=total_marks[ri].value; ri++; }); console.log(student_marks);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Dado que las funciones de JavaScript son ciudadanos de primera clase, lo que significa que se tratan de manera similar a las variables, la función en mark dentro del objeto student_marks se le asigna y no se ejecuta. También tenga en cuenta que el valor devuelto es una función que ha mencionado como una cadena. Para que tu código funcione,

  • Método 1:

Envuelva esa función en algún lugar y simplemente llámela en su lugar.

 const calculateMark = () => { for (let i = 0; i < marks_type.length; i++) { // m[marks_type[i]]=marks[i][ri]; m = [{ type: marks_type[i], marks: marks[i]['marks'], }]; // m:{ // marks_type[i]=marks[i][ri]; // }; } console.log(m); return m; }; student_marks.push({ student: item, mark: calculateMark() // totalmarks: total_marks[ri].value, });
  • Método 2:

Usar IIFE

 student_marks.push({ student: item, mark: (() => { for (let i = 0; i < marks_type.length; i++) { // m[marks_type[i]]=marks[i][ri]; m = [{ type: marks_type[i], marks: marks[i]['marks'], }]; // m:{ // marks_type[i]=marks[i][ri]; // }; } console.log(m); return m; })(), // totalmarks: total_marks[ri].value, });
about 4 years ago · Juan Pablo Isaza Denunciar
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