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
Quizzes
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

Oletuslajittelu toimii saumattomasti merkkijonotaulukoille, mutta numeeriset taulukot voivat aiheuttaa haasteita. Tarkastellaan esimerkkien avulla tätä käyttäytymistä:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

Tässä esimerkissä numeroiden taulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa havainnollistuksessa ilmenee vivahteita:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

sort()-metodi käsittelee oletuksena alkioita merkkijonoina, mikä voi johtaa odottamattomiin tuloksiin. Esimerkiksi 19 sijoittuu ennen 2 ja 25 ennen 3. Ratkaisu löytyy lajitteluprosessin mukauttamisesta.

Mukautetut lajittelujärjestykset

Järjestyksen räätälöimiseksi tiettyihin tarpeisiin 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 on ensimmäinen alkio;
  • b on toinen alkio.

Numeroiden lajittelu

Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen alkioiden 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()-metodin oletuslajittelukäyttäytyminen käsittelee alkioita?

3. Mikä on tuloste alla olevassa esimerkissä?

question mark

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

Select the correct answer

question mark

Miten sort()-metodin oletuslajittelukäyttäytyminen käsittelee alkioita?

Select the correct answer

question mark

Mikä on tuloste alla olevassa esimerkissä?

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

Suggested prompts:

Can you explain why the default sort method treats numbers as strings?

How does the compare function work in the sort method?

Can you show more examples of custom sorting, like sorting objects?

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

Oletuslajittelu toimii saumattomasti merkkijonotaulukoille, mutta numeeriset taulukot voivat aiheuttaa haasteita. Tarkastellaan esimerkkien avulla tätä käyttäytymistä:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

Tässä esimerkissä numeroiden taulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa havainnollistuksessa ilmenee vivahteita:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

sort()-metodi käsittelee oletuksena alkioita merkkijonoina, mikä voi johtaa odottamattomiin tuloksiin. Esimerkiksi 19 sijoittuu ennen 2 ja 25 ennen 3. Ratkaisu löytyy lajitteluprosessin mukauttamisesta.

Mukautetut lajittelujärjestykset

Järjestyksen räätälöimiseksi tiettyihin tarpeisiin 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 on ensimmäinen alkio;
  • b on toinen alkio.

Numeroiden lajittelu

Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen alkioiden 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()-metodin oletuslajittelukäyttäytyminen käsittelee alkioita?

3. Mikä on tuloste alla olevassa esimerkissä?

question mark

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

Select the correct answer

question mark

Miten sort()-metodin oletuslajittelukäyttäytyminen käsittelee alkioita?

Select the correct answer

question mark

Mikä on tuloste alla olevassa esimerkissä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 7
some-alt