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

201
Vistas
Llamar a una función con matriz como argumento

por favor, quiero que esta función recorra cualquier matriz y genere una nueva base de matriz en la lógica escrita, pero solo obtengo la matriz inicial cuando llamo a la función con la matriz como argumento, necesito ayuda. A continuación se muestra el código

 const scores = [35, 68, 70, 38]; const scores1 = [89, 42, 33]; function gradingStudents(...grades) { const newScores = grades.map(function (grade) { if (grade + 2 >= 40 && grade % 5 >= 3) { return grade % 5 == 3 ? grade + 2 : grade + 1; } else if (grade + 2 >= 40 && grade % 5 < 3) { return grade; } else { return grade; } }); return newScores; } console.log(gradingStudents(scores1));
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La sintaxis Rest Paramanter (...) se usa cuando se maneja con un número dinámico de argumentos. Aquí está pasando solo un argumento a la función. Elimine el ... del parámetro de función y su función funcionará como se esperaba.

 const scores = [35, 68, 70, 38]; const scores1 = [89, 42, 33]; function gradingStudents(grades) { const newScores = grades.map(function (grade) { if (grade + 2 >= 40 && grade % 5 >= 3) { return grade % 5 == 3 ? grade + 2 : grade + 1; } else if (grade + 2 >= 40 && grade % 5 < 3) { return grade; } else { return grade; } }); return newScores; } console.log(gradingStudents(scores1));

Si está manejando la función usando la sintaxis Rest Paramanter como lo hizo ahora, el parámetro en la función escrito como ...grades combinará todos los parámetros en la función en una sola matriz. Lo que significa que sus scores1 estarán allí dentro de la matriz de grades como en la consola a continuación.

 const scores1 = [89, 42, 33]; function gradingStudents(...grades) { // grades will be an array with scores1 as a sigle element in 0th index console.log(grades) } gradingStudents(scores1);

Recorriendo las grades en la condición anterior, cada nodo será una matriz que no satisfará ninguna de las declaraciones if, por lo tanto, devolverá la matriz en sí. Es por eso que está obteniendo la salida como una matriz con el padre como nodo único.

about 4 years ago · Santiago Trujillo Denunciar

0

ya que está devolviendo el grado si no cumplió con la primera condición. El operador resto no es necesario. Puedes escribirlo de la siguiente manera:

 function gradingStudents(grades) { const newScores = grades.map(function (grade) { if (grade + 2 >= 40 && grade % 5 >= 3) { return grade % 5 == 3 ? grade + 2 : grade + 1; }else { return grade; } }); return newScores; }
about 4 years ago · Santiago Trujillo Denunciar

0

Puedes usar forEach también

 const scores = [35, 68, 70, 38]; const scores1 = [89, 42, 33]; function gradingStudents(grades) { let newScore = []; grades.forEach(function (grade) { if (grade + 2 >= 40 && grade % 5 >= 3) { grade = grade % 5 == 3 ? grade + 2 : grade + 1; newScore.push(grade); } else if (grade + 2 >= 40 && grade % 5 < 3) { newScore.push(grade); } else { newScore.push(grade); } }); return newScore; } console.log(gradingStudents(scores)); console.log(gradingStudents(scores1));

about 4 years ago · Santiago Trujillo 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