Skip to content
Advertisement

Javascript array filter out numbers represented as strings

I have an array like this:

a = ["name","text","dog","1","2","cat"]

I want to filter out all the numbers represented as strings (integers and floats) from the above given array. In this case I want to filter out “1”, “2”

Desired Output

a=["name","text","dog","cat"]

Note: I am looking for a clean and elegant way to solve this. A naive approach that comes to my mind is to try and typecast to a float (which would cover both integers and floats) and if it fails, only then I should include the element in the array. I was wondering if there is a better way to solve this.

Advertisement

Answer

You can iterate over the array using Array#filter and only keep the elements that are not numbers using isNaN:

const a = ["name","text","dog","1","2","cat",".2"];

const res = a.filter(isNaN);

console.log(res);
Advertisement