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

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

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 Report

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 Report

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 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!