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

355
Visualizações
Is there any way to filter a string in an array of integers in JavaScript?

I have a JavaScript array :

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

I want to only keep the integers and filter out the strings and characters. Is there any way to do it ? I tried with typeof() but it is not working. Thanks in advance.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

You can use Array.prototype.filter and filter out the items which are numbers using the typeof operator.

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

console.log(nums);

Another approach

You can also do it coercing the items to a number. The strings which cannot be coerced to a number result in NaN, a falsy value in JS, and hence are filtered out.

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

console.log(nums);

But note strings that can be coerced to numbers like "1", "123" etc will not get filtered out by the second approach.

And more importantly this approach would filter out all zeroes (0, "0") in the array as 0 is a falsy value in JS.

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

console.log(nums);

Filtering Integers

You can also filter only integers using Number.isInteger

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

console.log(ints);

But note, this approach would not filter out numbers where the integral part of the number is equal to the number itself. In other words simply appending zeroes after the decimal point (like 1.00000) would not yield false when passed to isInteger.

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

console.log(ints);

about 4 years ago · Juan Pablo Isaza Relatório

0

try this:

arr.filter((elem) => Number.isInteger(elem));

output = [1,4,6,9,91]
about 4 years ago · Juan Pablo Isaza Relatório

0

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

const number = arr.filter(item => typeof item === 'number')
console.log(number )

here the correct way

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