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