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
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.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Jotta numerot lajitellaan oikein, käytä vertailufunktiota:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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 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()-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