Javascript
"use strict"; let taulukko = ['äh','ahtaja','Ahtojää', 'Aha', 'ahasta','aha', 'àha', 'pöh','poh','pôh','pooh','öh','oh','Oh', "Pöh", "Poh", "2", "3", "22"]; //seuraavissa esimerkeissä järjestettävä taulukko kopioidaan (Array.from) aina ylläolevasta, jotta // kaikissa operaatioissa on sama lähtötilanne. sort muuttaa aina taulukkoa. // järjestää selaimen kielen mukaan eli emme voi tietää miten. Älä käytä näin let jarjestetty = Array.from(taulukko).sort( (a, b) => a.localeCompare(b)); console.log(jarjestetty); // määrätään kieleksi suomi jarjestetty = Array.from(taulukko).sort( (a, b) => a.localeCompare(b, 'fi')); console.log(jarjestetty); // määrätään kieleksi suomi ja numeerinen järjestys jarjestetty = Array.from(taulukko).sort( (a, b) => a.localeCompare(b, 'fi', {numeric: true})); console.log(jarjestetty); // määrätään kieleksi suomi ja järjestetään isot kirjaimet ennen pieniä jarjestetty = Array.from(taulukko).sort( (a, b) => a.localeCompare(b, 'fi', {caseFirst: 'upper'})); console.log(jarjestetty); // määrätään kieleksi suomi eikä erotella pieniä ja suuria kirjaimia jarjestetty = Array.from(taulukko).sort( (a, b) => a.localeCompare(b, 'fi', {sensitivity: 'base'})); console.log(jarjestetty); // määrätään kieleksi suomi eikä noteerata aksenttimerkkejä jarjestetty = Array.from(taulukko).sort( (a, b) => a.localeCompare(b, 'fi', {ignorePunctuation: true})); console.log(jarjestetty); // yksinkertaisin versio suoraan Intl.Collatorilla. Samat optiot toimivat kuin localeComparella jarjestetty = Array.from(taulukko).sort(Intl.Collator('fi', { sensitivity: 'base' }).compare); console.log(jarjestetty); // objektit aivan samaan tapaan taulukko = [ { "etunimi": "Oona", "sukunimi": "Opiskelija" }, { "etunimi": "Ölli", "sukunimi": "Opiskelija" }, { "etunimi": "Tommi", "sukunimi": "Lahtonen" } ]; // objektien vertailu function compare(a, b) { let tulos = a.sukunimi.localeCompare(b.sukunimi, 'fi', {sensitivity: 'base'}) // jos sukunimissä oli eroa if ( tulos ) { return tulos; } // jos sukunimet olivat samat palautetaan suoraan etunimien vertailutulos return a.etunimi.localeCompare(b.etunimi, 'fi', {sensitivity: 'base'}) } console.log( taulukko.sort(compare) );
Konsoli