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

132
Vistas
Filtrado de matrices en JavaScript usando funciones de devolución de llamada

La pregunta es:

"Agregue código a las funciones func1 y func2 en los lugares marcados como "AGREGAR CÓDIGO AQUÍ" para lograr los registros de consola deseados".

 function filterArray(array, callback) { const newArray = []; for (let i = 0; i < array.length; i += 1) { if (callback(array[i])) newArray.push(array[i]); } return newArray; } const arrOfNums = [1, 2, 3, 4, 5]; function func1(num) { // ADD CODE HERE } function func2(num) { // ADD CODE HERE } console.log(filterArray(arrOfNums, func1)); // should log: [2, 4] console.log(filterArray(arrOfNums, func2)); // should log: [1, 3, 5]

En func1 probé:

 if (num % 2 === 0) { num = num; } else { num = null; }

En func2 probé:

 if (num % 2 !== 0) { num = num; } else { num = null; }

No estoy seguro de qué otra manera abordar este problema. Mi solución no funcionó y las llamadas a console.log devolvieron matrices vacías...

¡Gracias de antemano!

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

0

La función de devolución de llamada debe devolver un valor booleano, si es verdadero, entonces la función filterArray agrega el elemento a la matriz.

 if (callback(array[i])) newArray.push(array[i]);

Entonces, esta línea solo llama a newArray.push(array[i]) si el valor de retorno de callback(array[i]) es verdadero.

Solución:

 function func1(num) { return (num % 2 === 0); } function func2(num) { return (num % 2 !== 0); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Sus funciones no devuelven nada, pero las funciones de devolución de llamada para el filter deben devolver un valor booleano para cada valor.

Puedes usar

 return num % 2 === 0;

resp.

 return num % 2 !== 0;
about 4 years ago · Juan Pablo Isaza Denunciar

0

Necesitas devolver verdadero/falso

 function filterArray(array, callback) { const newArray = []; for (let i = 0; i < array.length; i += 1) { if (callback(array[i])) newArray.push(array[i]); } return newArray; } const arrOfNums = [1, 2, 3, 4, 5]; function func1(num) { // return num % 2 === 0; if (num % 2 === 0) { return true; } else { return false; } } function func2(num) { // return num % 2 !== 0; if (num % 2 !== 0) { return true; } else { return false; } } console.log(filterArray(arrOfNums, func1)); // should log: [2, 4] console.log(filterArray(arrOfNums, func2)); // should log: [1, 3, 5]

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