Metoden sort

Metoden sort sorterar en array i lexikografisk ordning och returnerar den redan modifierade arrayen. En valfri funktion för sortering kan anges som parameter.

Syntax

javascriptarray.sort([funktion]);

Exempel

Låt oss sortera en array:

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

Resultatet av att köra koden:

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

Exempel

Låt oss sortera en array med nummer:

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

Resultatet av att köra koden:

javascript[1, 2, 4, 7]

Exempel

Låt oss lägga till fler nummer i arrayen och sortera den:

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

I resultatet av att köra koden ser vi att numren inte är placerade i stigande ordning, utan i lexikografisk ordning, d.v.s. numren jämförs med varandra som strängar. Jämförelsen sker tecken för tecken, om koden för det första tecknet är större än koden för det angränsande tecknet, etc. Resultat:

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

Exempel

Låt oss nu sortera arrayen med hjälp av en funktion, där vi specificerar villkoret - om den första parametern är större än den andra, så flyttar vi den (för detta, returnera valfritt positivt tal i return). I det omvända fallet krävs ingen omflyttning och vi anger 0 eller valfritt 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 av att köra koden:

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

Exempel

Låt oss för enkelhetens skull förkorta koden i vår funktion från föregående exempel:

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

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

console.log(arr);

Resultatet av att köra koden:

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

Exempel

Och nu, med hjälp av en funktion, sorterar vi arrayen i fallande ordning:

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

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

console.log(arr);

Resultatet av att köra koden:

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

Exempel

Låt oss sortera en array med objekt efter nyckeln 'one' i stigande ordning:

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 av att köra koden:

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

Exempel

Och nu låt oss sortera arrayen med objekt efter nyckeln '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 av att köra koden:

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

Exempel

Låt oss kontrollera om arrayen har ändrats efter tillämpningen av metoden sort:

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

console.log(arr);

Resultatet av att köra koden:

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

Se även

  • metoden filter,
    som gör det möjligt att filtrera arrayelement