How to find biggest number in array around undefined elements?

Tags: ,



My question is pretty simple actually but I couldnt find satisfied answer

var ages = [3, undefined, undefined, 20];

lets say that I have array like above.And I wanna get the max value in array which is 20.

Math.max.apply(Math,ages) 

this is what I did but returned undefined so I tried something like that below and worked

Math.max.apply(Math, ages.filter(e=>e!=undefined))

but filtering all undefined elements(iterating all) and then finding biggest element is big cost.I need something built-in js function such as Math.max.apply which can skip undefined elements and find the biggest value from array.

Answer

As far as I understand your question, I would like to answer it.
I have an idea to do this.

var values = [3, undefined, 5, 6, 4, undefined, 20];
values.sort();
console.log(values[0]);

This results me with max value – 20.
EDIT: Now this can work on negative values too.

var values = [3, undefined, 5, 6, 4, undefined, 20];
values.sort((a,b) => b-a);
console.log(values[0]);


Source: stackoverflow