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

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

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 Relatório

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 Relatório

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