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

Tässä luvussa perehdytään sort()-metodin yksityiskohtiin, mukaan lukien sen syntaksi, oletuskäyttäytyminen ja mukautetut lajittelutekniikat.

sort()

sort()-metodi muokkaa alkuperäistä taulukkoa, järjestäen sen uudelleen.

Tärkeimmät ominaisuudet:

  • Alkuperäinen taulukko muuttuu, ja sen alkiot järjestetään uudelleen;
  • Metodi palauttaa muokatun taulukon, mahdollistaen jatkokäsittelyn;
  • Oletuksena sort()-metodi järjestää alkiot nousevaan järjestykseen.

Oletusarvoinen lajittelukäyttäytyminen

Oletusarvoinen lajittelu toimii saumattomasti merkkijonotaulukoille, mutta numeeristen taulukoiden kohdalla voi ilmetä 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ä numerotaulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa esimerkissä 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 taulukon alkiot merkkijonoina, mikä voi johtaa odottamattomiin tuloksiin. Esimerkiksi 19 sijoittuu ennen 2 ja 25 ennen 3. Ratkaisu löytyy lajitteluprosessin mukauttamisesta.

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 ja tarjoaa mukautusmahdollisuudet sekä nousevaan että laskevaan järjestykseen.

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

Suggested prompts:

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

How do I use a custom compare function for more complex sorting?

Can you show more examples of sorting arrays with objects?

Awesome!

Completion rate improved to 2.27

bookTaulukoiden Lajittelu Sort()-Metodilla

Pyyhkäise näyttääksesi valikon

Tässä luvussa perehdytään sort()-metodin yksityiskohtiin, mukaan lukien sen syntaksi, oletuskäyttäytyminen ja mukautetut lajittelutekniikat.

sort()

sort()-metodi muokkaa alkuperäistä taulukkoa, järjestäen sen uudelleen.

Tärkeimmät ominaisuudet:

  • Alkuperäinen taulukko muuttuu, ja sen alkiot järjestetään uudelleen;
  • Metodi palauttaa muokatun taulukon, mahdollistaen jatkokäsittelyn;
  • Oletuksena sort()-metodi järjestää alkiot nousevaan järjestykseen.

Oletusarvoinen lajittelukäyttäytyminen

Oletusarvoinen lajittelu toimii saumattomasti merkkijonotaulukoille, mutta numeeristen taulukoiden kohdalla voi ilmetä 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ä numerotaulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa esimerkissä 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 taulukon alkiot merkkijonoina, mikä voi johtaa odottamattomiin tuloksiin. Esimerkiksi 19 sijoittuu ennen 2 ja 25 ennen 3. Ratkaisu löytyy lajitteluprosessin mukauttamisesta.

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 ja tarjoaa mukautusmahdollisuudet sekä nousevaan että laskevaan järjestykseen.

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