Metoden sort

Metoden sort sorterer en array i leksikografisk rekkefølge og returnerer den allerede endrede arrayen. En valgfri parameter kan brukes til å angi en egen funksjon for sortering.

Syntaks

javascriptarray.sort([funksjon]);

Eksempel

La oss sortere en array:

javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());

Resultat av kjøring av koden:

javascript['a', 'b', 'c', 'd']

Eksempel

La oss sortere en array med tall:

javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());

Resultat av kjøring av koden:

javascript[1, 2, 4, 7]

Eksempel

La oss legge til tall i arrayen og sortere den:

javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());

Som et resultat av kjøring av koden vil vi se at tallene ikke er plassert i stigende rekkefølge, men i leksikografisk rekkefølge, dvs. tall sammenlignes med hverandre som strenger. Samtidig sammenlignes hvert tegn, om koden til det første tegnet er større enn koden til det nærliggende tegnet, osv. Resultat:

javascript[1, 111, 123, 2, 4, 7]

Eksempel

La oss nå sortere arrayen ved hjelp av en funksjon, der vi spesifiserer betingelsen - hvis den første parameteren er større enn den andre, så bytter vi dem (for dette i return, angi et hvilket som helst positivt tall). I det motsatte tilfellet er bytting ikke nødvendig og vi angir 0 eller et hvilket som helst negativt tall:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.log(arr);

Resultat av kjøring av koden:

javascript[1, 2, 4, 7, 111, 123]

Eksempel

La oss forkorte koden i funksjonen vår fra forrige eksempel for enkelthets skyld:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return a - b;
});

console.log(arr);

Resultat av kjøring av koden:

javascript[1, 2, 4, 7, 111, 123]

Eksempel

Og la oss nå sortere arrayen i synkende rekkefølge ved hjelp av en funksjon:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return b - a;
});

console.log(arr);

Resultat av kjøring av koden:

javascript[123, 111, 7, 4, 2, 1]

Eksempel

La oss sortere en array med objekter etter nøkkelen 'one' i stigende rekkefølge:

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.one - b.one;
});

console.log(arr);

Resultat av kjøring av koden:

javascript[
  {one: 1, two: 2},
  {one: 3, two: 3},
  {one: 7, two: 1}
]

Eksempel

Og la oss nå sortere arrayen med objekter etter nøkkelen 'two':

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.two - b.two;
});

console.log(arr);

Resultat av kjøring av koden:

javascript[
  {one: 7, two: 1},
  {one: 1, two: 2},
  {one: 3, two: 3}
]

Eksempel

La oss sjekke om arrayen er endret etter bruk av metoden sort:

javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();

console.log(arr);

Resultat av kjøring av koden:

javascript['a', 'b', 'c', 'd']

Se også

  • metoden filter,
    som lar deg filtrere elementer i en array