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
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Javascriptin tietorakenteet

bookTaulukoiden Lajittelu Sort()-Metodilla

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?

Select the correct answer

question mark

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

Select the correct answer

question mark

Alla olevassa esimerkissä, mikä on tuloste?

Select the correct answer

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

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?

Select the correct answer

question mark

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

Select the correct answer

question mark

Alla olevassa esimerkissä, mikä on tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 7
some-alt