Sort array alphabetically, then by uppercase and then by lowercase

Viewed 287

I would like to sort an array alphabetically, then by uppercase and then by lowercase.

const i = ["aA", "BA", "Aa", "aa", "Ba", "AA"];

//I tired so far.
i.sort((a, b) => a.localeCompare(b));

console.log(i);

//expected output
const o = ["AA", "Aa", "aA", "aa", "BA", "Ba"];

1 Answers

You can use the caseFirst option to specify that upper-case letters take priority over lower-case letters:

const i = ["aA", "BA", "Aa", "aa", "Ba", "AA"];

i.sort((a, b) => a.localeCompare(b, 'en-US', {caseFirst: 'upper'}));

console.log(i);

Related