Cualquier persona que esté familiarizada con el desafío Calificar a los estudiantes en Hackerank , ayúdame a comprender por qué este código no se aprueba.
function gradingStudents(grades) { let args = [...arguments]; const round5 = (x) => { return Math.ceil(x / 5) * 5; } for (let i = 1; i < args.length; i++) { if (round5(args[i]) - args[i] < 3 && args[i] >= 38) { args[i] = round5(args[i]) } } args.shift() return args.join('\n') + '\n' //return args //return args.join(' ') }Estoy perdiendo mi mente. He probado todo tipo de devoluciones y ninguna funciona.
Parece que pensó que tanto el número de estudiantes como las calificaciones se pasan a la función gradingStudents , pero en realidad solo se pasa un único argumento, es decir, una matriz que contiene las grades de los estudiantes.
Por lo tanto, no es necesario usar arguments , puede usar directamente la matriz de grades . Y también simplemente necesita devolver la matriz de calificaciones actualizada de la función, no necesita preocuparse por el formato de salida.
function gradingStudents(grades) { const round5 = (x) => { return Math.ceil(x / 5) * 5; }; for (let i = 0; i < grades.length; i++) { if (round5(grades[i]) - grades[i] < 3 && grades[i] >= 38) { grades[i] = round5(grades[i]); } } return grades; } console.log(gradingStudents([73, 67, 38, 33]));