Similar to How to sort strings in JavaScript but I want to avoid sorting first, I just want the "largest" value of a string. For example
f(['Aa', 'B', 'C', 'Acd', 'Ace']) == 'C'
I am thinking it's something with .reduce
like
const f = (a) => a.reduce(someFunctionGoesHere)
Where some function has an undefined
check
UPDATE: Got it working but looks fugly. I wonder if I can reduce that function
const someFunctionGoesHere = (prev, current) => {
if (!prev) {
return current;
}
else if (prev.localeCompare(current) < 0) {
return current;
} else {
return prev;
}
};
const f = (a) => a.reduce(someFunctionGoesHere)
console.log(f(['Aa', 'B', 'C', 'Acd', 'Ace','CC']));
UPDATE: this works, one line, but looks quite ugly. I guess this is the best that can be done with Javascript itself.
const maxString = (a) => a.reduce((prev, current) => (!prev || prev.localeCompare(current) < 0) ? current : prev)
console.log(maxString(['Aa', 'B', 'C', 'Acd', 'Ace','CC']));