Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Taulukoiden Lajittelu Sort()-Metodilla | Edistyneet Taulukkometodit ja Muunnokset
Javascriptin tietorakenteet

bookTaulukoiden Lajittelu Sort()-Metodilla

Pyyhkäise näyttääksesi valikon

sort()

sort()-metodi järjestää taulukon alkiot paikan päällä ja palauttaa päivitetyn taulukon. Oletuksena lajittelu toimii hyvin merkkijonoille, mutta voi käyttäytyä odottamattomasti numeroiden kanssa.

Oletuslajittelun toiminta

sort()-metodi muuntaa alkiot oletuksena merkkijonoiksi ja vertaa niitä Unicode-järjestyksessä. Tämän vuoksi se toimii luonnollisesti merkkijonoille, mutta numeeriset taulukot voivat tuottaa odottamattomia tuloksia, ellei anneta vertailufunktiota.

123
const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
copy

Jotta numerot lajitellaan oikein, käytä vertailufunktiota:

1234
const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
copy

Mukautetut lajittelujärjestykset

Lajittelun räätälöimiseksi käytetään palautefunktiota. Tätä funktiota kutsutaan usein vertailufunktioksi, ja se määrittää lajittelulogiikan. Tarkastellaan mukautettua lajittelua sekä numeroille että merkkijonoille. Perussyntaksi:

array.sort((a, b) => {
  // Callback body
});
  • a tarkoittaa ensimmäistä alkiota;
  • b tarkoittaa toista alkiota.

Numeroiden lajittelu

Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen elementtien a ja b välisen suhteen perusteella.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Merkkijonojen lajittelu

localeCompare()-menetelmä mahdollistaa aakkosellisen lajittelun sekä nousevassa että laskevassa järjestyksessä.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Mikä on sort()-menetelmän keskeinen ominaisuus?

2. Miten sort()-menetelmä käsittelee alkioita oletusarvoisesti?

3. Alla olevassa esimerkissä, mikä on tuloste?

question mark

Mikä on sort()-menetelmän keskeinen ominaisuus?

Valitse oikea vastaus

question mark

Miten sort()-menetelmä käsittelee alkioita oletusarvoisesti?

Valitse oikea vastaus

question mark

Alla olevassa esimerkissä, mikä on tuloste?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 5. Luku 7
some-alt