Taulukoiden 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ä:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Tässä esimerkissä numeroiden taulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa havainnollistuksessa 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 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
});
aon ensimmäinen alkio;bon toinen alkio.
Numeroiden lajittelu
Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen alkioiden 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 sekä nousevassa että laskevassa järjestyksessä.
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()-metodin oletuslajittelukäyttäytyminen käsittelee alkioita?
3. Mikä on tuloste alla olevassa esimerkissä?
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 does the compare function work in the sort method?
Can you show more examples of custom sorting, like sorting objects?
Mahtavaa!
Completion arvosana parantunut arvoon 2.27
Taulukoiden 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ä:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
Tässä esimerkissä numeroiden taulukko lajitellaan nousevaan järjestykseen, mikä vaikuttaa yksinkertaiselta. Kuitenkin seuraavassa havainnollistuksessa 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 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
});
aon ensimmäinen alkio;bon toinen alkio.
Numeroiden lajittelu
Tässä tapauksessa vertailufunktio määrittää nousevan ja laskevan järjestyksen alkioiden 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 sekä nousevassa että laskevassa järjestyksessä.
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()-metodin oletuslajittelukäyttäytyminen käsittelee alkioita?
3. Mikä on tuloste alla olevassa esimerkissä?
Kiitos palautteestasi!