Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

68
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!