Skip to content

Instantly share code, notes, and snippets.

@raulingg
Last active September 18, 2019 15:48
Show Gist options
  • Save raulingg/a1c67c629ad96cc43e32c7f6e9da5975 to your computer and use it in GitHub Desktop.
Save raulingg/a1c67c629ad96cc43e32c7f6e9da5975 to your computer and use it in GitHub Desktop.
Comparing common sorting and String.localeCompare to sort alphabetically
const people = [
{
name: 'Ráulingg Robin alphabetically',
age: 30
},
{
name: 'rolandó'
},
{
name: 'Rolandó'
},
{
name: 'Ródrigo',
age: 35
},
{
name: 'KARLA', // lowercase
age: 20
},
{
name: 'Karoline',
age: 30
},
{
name: 'Karin'
}
]
const peopleSorted = [...people].sort(({ name: nameA }, { name: nameB }) => {
if (nameA > nameB) {
return 1
}
if (nameA < nameB) {
return -1
}
return 0
})
const peopleSortedByLocalCompare = [...people].sort(
({ name: nameA }, { name: nameB }) =>
nameA.localeCompare(nameB, 'es-ES', {
usage: 'sort',
ignorePunctuation: false,
caseFirst: "upper"
})
)
console.log(peopleSorted)
console.log(peopleSortedByLocalCompare)
// log Results
// peopleSorted
[ { name: 'KARLA', age: 20 },
{ name: 'Karin' },
{ name: 'Karoline', age: 30 },
{ name: 'Rolandó' },
{ name: 'Ráulingg Robin alphabetically', age: 30 },
{ name: 'Ródrigo', age: 35 },
{ name: 'rolandó' } ]
// peopleSortedByLocalCompare
[ { name: 'Karin' },
{ name: 'KARLA', age: 20 },
{ name: 'Karoline', age: 30 },
{ name: 'Ráulingg Robin alphabetically', age: 30 },
{ name: 'Ródrigo', age: 35 },
{ name: 'Rolandó' },
{ name: 'rolandó' } ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment