Similar a Cómo ordenar cadenas en JavaScript pero quiero evitar ordenar primero, solo quiero el valor "más grande" de una cadena. Por ejemplo
f(['Aa', 'B', 'C', 'Acd', 'Ace']) == 'C' Estoy pensando que es algo con .reduce como
const f = (a) => a.reduce(someFunctionGoesHere) Donde alguna función tiene un cheque undefined
ACTUALIZACIÓN: Lo tengo funcionando pero se ve feo. Me pregunto si puedo reducir esa función.
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']));ACTUALIZACIÓN: esto funciona, una línea, pero se ve bastante feo. Supongo que esto es lo mejor que se puede hacer con Javascript.
const maxString = (a) => a.reduce((prev, current) => (!prev || prev.localeCompare(current) < 0) ? current : prev) console.log(maxString(['Aa', 'B', 'C', 'Acd', 'Ace','CC']));De hecho, reduce() te llevará allí:
const f = (array) => array.reduce((a, v) => v.localeCompare(a) > 0 ? v : a, ''); console.log(f(['Aa', 'B', 'C', 'Acd', 'Ace','CC']));