Metod sort

Metod sort massivi leksikoqrafik qaydada çeşidləyir və artıq dəyişdirilmiş massivi qaytarır. İstəyə bağlı parametr kimi çeşidləmə üçün öz funksiyanızı təyin edə bilərsiniz.

Sintaksis

javascriptmassiv.sort([funksiya]);

Nümunə

Gəlin massivi çeşidləyək:

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

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin rəqəmlərdən ibarət massivi çeşidləyək:

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

Kodun icrasının nəticəsi:

javascript[1, 2, 4, 7]

Nümunə

Gəlin massivə rəqəmlər əlavə edək və onu çeşidləyək:

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

Kodun icrası nəticəsində görəcəyik ki, rəqəmlər artan qaydada deyil, leksikoqrafik qaydada yerləşir, yəni rəqəmlər bir-biri ilə sətirlər kimi müqayisə edilir. Bu zaman müqayisə hər bir simvol üzrə aparılır, birinci simvolun kodu qonşunun kodundan böyükdürmü və s. Nəticə:

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

Nümunə

İndi gəlin funksiyanın köməyi ilə massivi çeşidləyək, burada şərti təyin edək - əgər birinci parametr ikincidən böyükdürsə, onları dəyişdiririk (bunun üçün return istənilən müsbət rəqəm). Əks halda dəyişdirmə tələb olunmur və biz 0 və ya istənilən mənfi rəqəm göstəririk:

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

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

console.log(arr);

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin rahatlıq üçün əvvəlki nümunədəki funksiyanın kodunu qısaldaq:

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

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

console.log(arr);

Kodun icrasının nəticəsi:

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

Nümunə

İndi isə funksiyanın köməyi ilə massivi azalan qaydada çeşidləyək:

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

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

console.log(arr);

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin obyektlər massivini 'one' açarı üzrə artan qaydada çeşidləyək:

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);

Kodun icrasının nəticəsi:

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

Nümunə

İndi isə gəlin obyektlər massivini 'two' açarı üzrə çeşidləyək:

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);

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin yoxlayaq metod sort tətbiq edildikdən sonra massiv dəyişib ya yox:

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

console.log(arr);

Kodun icrasının nəticəsi:

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

Həmçinin bax

  • metod filter,
    massiv elementlərini süzməyə imkan verir