Metoden sort

Metoden sort udfører sortering af et array i leksikografisk rækkefølge og returnerer det allerede ændrede array. Som en valgfri parameter kan man angive sin egen funktion til sortering.

Syntaks

javascriptarray.sort([funktion]);

Eksempel

Lad os sortere et array:

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

Resultatet af udførelse af koden:

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

Eksempel

Lad os sortere et array med tal:

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

Resultatet af udførelse af koden:

javascript[1, 2, 4, 7]

Eksempel

Lad os tilføje tal til arrayet og sortere det:

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

Som et resultat af udførelse af koden vil vi se, at tallene ikke er placeret i stigende rækkefølge, men i leksikografisk rækkefølge, dvs. tallene sammenlignes med hinanden som strenge. Ved sammenligning tages der hensyn til hvert tegn, om koden for det første tegn er større end koden for det næste osv. Resultatet:

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

Eksempel

Lad os nu sortere arrayet ved hjælp af en funktion, hvor vi angiver betingelsen - hvis den første parameter er større end den anden, så ombyt dem (for dette i return angiv et hvilket som helst positivt tal). I det modsatte tilfælde er ombytning ikke nødvendig, og vi angiver 0 eller et hvilket som helst negativt tal:

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

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

console.log(arr);

Resultatet af udførelse af koden:

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

Eksempel

Lad os for nemheds skynd forkorte koden i vores funktion fra det foregående eksempel:

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

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

console.log(arr);

Resultatet af udførelse af koden:

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

Eksempel

Og lad os nu ved hjælp af en funktion sortere arrayet i faldende rækkefølge:

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

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

console.log(arr);

Resultatet af udførelse af koden:

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

Eksempel

Lad os sortere et array af objekter efter nøglen 'one' i stigende rækkefø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);

Resultatet af udførelse af koden:

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

Eksempel

Og lad os nu sortere arrayet af objekter efter nøglen '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);

Resultatet af udførelse af koden:

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

Eksempel

Lad os tjekke om arrayet er ændret efter anvendelse af metoden sort:

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

console.log(arr);

Resultatet af udførelse af koden:

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

Se også

  • metoden filter,
    som gør det muligt at filtrere elementer i et array