I'm currently using:
last = Math.max.apply(Math, response.data.map((o: any) => {
return o.name;
}))
to find the object with the highest 'name' value within response.data array. Despite 16.12 being the largest value, it returns 16.9 as I think it's just looking at the 1 and skipping it. How can I make it take into account the full decimal?
Edited: The data coming through is:

In the context of SemVer the individual components, major, minor and patch are integers however the composite value, major.minor.patch is not a valid number itself. This is why they are stored as strings, the period is merely a delimiter and not a decimal point.
To correctly compare versions you need to break the strings into their component parts and compare each pair of numbers individually. The following example does this by sorting in descending order then taking the first value.