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

320
Vistas
¿Cómo puedo usar un For-Loop para devolver una nueva matriz de una anterior?

Tengo un conjunto de estudiantes de dos sistemas de calificación diferentes.

Primer sistema de calificación Un sistema de calificación se define como calificaciones del 1 al 5, donde 3 y más significa que aprobó el curso.

Segundo sistema de calificaciones El otro sistema de calificaciones tiene las siguientes calificaciones A, A-, B, B-, C, C- donde A es la calificación más alta y C es la calificación más baja para aprobar.

La tarea Dada la siguiente matriz allStudents que representa a todos los estudiantes y sus calificaciones, intento construir una nueva matriz StudentsWhoPass que contenga a todos los estudiantes que aprobaron.

let allStudents = [ 'A', 'B-', 1, 4, 5, 2 ]

let estudiantesQuePasan = [];

LO QUE HE PROBADO

 let allStudents = [ 'A', 'B-', 1, 4, 5, 2 ] let studentsWhoPass = []; for (let i = 0; i < allStudents.length; i++) { if (allStudents >= 'A' && allStudents > 3) { return studentsWhoPass.push(allStudents); } }

Cualquier ayuda será apreciada.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Varios asuntos

  • return en el ciclo detendrá el ciclo. No se necesita en un bucle. Se necesita en un mapa o filtro y no se permite fuera de una función.

  • Necesita acceder al elemento con [i]

  • Tienes una mezcla de letras y dígitos. Necesitas tratarlos por separado.

  • "B..." es > "A..." así que necesitamos probar la cadena real

Aquí pruebo las letras con isNaN (no es un número)

Pasa todas las letras > C- y todos los números >= 3

 const allStudents = [ 'A','A-','B-',1,4,5,2 ]; const getPassingStudents = () => allStudents .filter(student => { if (isNaN(student)) return "ABC".includes(student.slice(0,1)) && student != "C-"; return student > 3; }); console.log( getPassingStudents() )

about 4 years ago · Juan Pablo Isaza Denunciar

0

 let allStudents = [ 'A', 'B-', 1, 4, 5, 2 ] let studentsWhoPass = []; for (let i = 0; i < allStudents.length; i++) { if (allStudents[i] == 'A' || allStudents[i] == 'B' || allStudents[i] == 'C' || allStudents[i] == 'A-' || allStudents[i] == 'B-' || allStudents[i] > 3) { studentsWhoPass.push(allStudents[i]); } } console.log(studentsWhoPass);

NOTA :-

  • declaración de retorno solo puede estar allí en cualquier función fuera de la función, simplemente puede actualizar e insertar el valor en la matriz
  • Estaba tratando de empujar toda la matriz puesta aquí, solo empujaremos el elemento en la matriz, por ejemplo studentsWhoPass.push(allStudents[i]);
  • En la declaración if, estaba verificando si toda la matriz cumple con una determinada condición, pero tendrá que verificar el elemento igual que en el ejemplo anterior
  • para verificar el carácter, podríamos verificar usando el código ASCII pero podría volverse confuso, para simplificar estamos buscando letras individuales
  • Además, en lugar del operador && (y) estamos usando || (o) operador para que cada condición para cada elemento no tenga que ser verdadera, pero al menos una condición debería ser verdadera

Creo que esto resolverá tu problema, ¡Gracias!

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sugeriría crear un mapa de cada grado junto con su puntaje equivalente, luego es fácil filtrar a los estudiantes con un puntaje equivalente de 3 o superior usando Array.filter()

 let allStudents = [ 'A', 'B-', 1, 4, 5, 2, 'C-' ] // One can customize as necessary.. let gradeMap = { 'A': 7, 'A-': 6, 'B': 5, 'B-': 4, 'C': 3, 'C-': 2}; const passingScore = 3; function studentPassed(input) { return (gradeMap[input] || input) >= passingScore; } let studentsWhoPass = allStudents.filter(studentPassed) console.log('Passing students:', studentsWhoPass)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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