Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

76
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda