Taulukoiden 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ä:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Tässä esimerkissä numerotaulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa esimerkissä ilmenee vivahteita:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
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
});
atarkoittaa ensimmäistä alkiota;btarkoittaa toista alkiota.
Numeroiden lajittelu
Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen elementtien a ja b välisen suhteen perusteella.
1234567const 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
Merkkijonojen lajittelu
localeCompare()-menetelmä mahdollistaa aakkosellisen lajittelun ja tarjoaa mukautusmahdollisuudet sekä nousevaan että laskevaan järjestykseen.
1234567const 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
1. Mikä on sort()-menetelmän keskeinen ominaisuus?
2. Miten sort()-menetelmä käsittelee alkioita oletusarvoisesti?
3. Alla olevassa esimerkissä, mikä on tuloste?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Taulukoiden 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ä:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Tässä esimerkissä numerotaulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa esimerkissä ilmenee vivahteita:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
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
});
atarkoittaa ensimmäistä alkiota;btarkoittaa toista alkiota.
Numeroiden lajittelu
Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen elementtien a ja b välisen suhteen perusteella.
1234567const 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
Merkkijonojen lajittelu
localeCompare()-menetelmä mahdollistaa aakkosellisen lajittelun ja tarjoaa mukautusmahdollisuudet sekä nousevaan että laskevaan järjestykseen.
1234567const 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
1. Mikä on sort()-menetelmän keskeinen ominaisuus?
2. Miten sort()-menetelmä käsittelee alkioita oletusarvoisesti?
3. Alla olevassa esimerkissä, mikä on tuloste?
Kiitos palautteestasi!