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

354
Vistas
¿Hay alguna forma de filtrar una cadena en una matriz de enteros en JavaScript?

Tengo una matriz de JavaScript:

const arr = ['a', 'b', 1, 4, 6, 'John', 9, 91];

Solo quiero mantener los números enteros y filtrar las cadenas y los caracteres. Hay alguna forma de hacerlo ? Probé con typeof() pero no funciona. Gracias por adelantado.

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

0

Puede usar Array.prototype.filter y filtrar los elementos que son números usando el operador typeof .

 const arr = ["a", "b", "1", 4, 6, "John", 9, 91], nums = arr.filter((a) => typeof a === "number"); console.log(nums);

Otro enfoque

También puedes hacerlo coaccionando los artículos a un número. Las cadenas que no se pueden forzar a un número dan como resultado NaN , un valor falso en JS, y por lo tanto se filtran.

 const arr = ["a", "b", 1, 4, 6, "John", 9, 91], nums = arr.filter(Number); console.log(nums);

Pero tenga en cuenta que las cadenas que se pueden forzar a números como "1" , "123" , etc. no serán filtradas por el segundo enfoque.

Y lo que es más importante, este enfoque filtraría todos los ceros ( 0 , "0" ) en la matriz, ya que 0 es un valor falso en JS.

 const arr = ["1", "4", "6", 0, "0"], nums = arr.filter(Number); console.log(nums);

Filtrado de enteros

También puede filtrar solo números enteros usando Number.isInteger

 const arr = ["1", 2, -3, 4.5], ints = arr.filter(Number.isInteger); console.log(ints);

Pero tenga en cuenta que este enfoque no filtraría los números en los que la parte integral del número es igual al número en sí. En otras palabras, simplemente agregar ceros después del punto decimal (como 1.00000 ) no daría false cuando se pasa a isInteger .

 const arr = [1.0, 2.01], ints = arr.filter(Number.isInteger); console.log(ints);

about 4 years ago · Juan Pablo Isaza Denunciar

0

prueba esto:

 arr.filter((elem) => Number.isInteger(elem));
 output = [1,4,6,9,91]
about 4 years ago · Juan Pablo Isaza Denunciar

0

 const arr = ['a', 'b', 1, 4, 6, 'John', 9, 91]; const number = arr.filter(item => typeof item === 'number') console.log(number )

aquí la forma correcta

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