sort методу

sort методу массивди лексикографиялык тартипте иреттейт жана өзгөртүлгөн массивди кайтарат. Керектүү болсо, иреттөө үчүн өзүңүздүн функцияңызды көрсөтсөңүз болот.

Синтаксис

javascriptмассив.sort([функция]);

Мисал

Келгиле, массивди иреттейли:

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

Кодду иштетүүнүн натыйжасы:

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

Мисал

Келгиле, сандар менен массивди иреттейли:

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

Кодду иштетүүнүн натыйжасы:

javascript[1, 2, 4, 7]

Мисал

Келгиле, массивге сандарды кошуп, аны иреттейли:

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

Кодду иштетүүнүн натыйжасында сандар өсүү тартибинде эмес, лексикографиялык тартипте жайгашканын көрөбүз, башкача айтканда, сандар бири-бири менен саптар сыяктуу салыштырылат. Бул учурда ар бир символ боюнча салыштыруу жүргүзүлөт, биринчи символдун коду коңшу символдун кодунан чоңбу же жокпу ж.б. Натыйжа:

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

Мисал

Эми келгиле, массивди функциянын жардамы менен иреттейли, анда шартты белгилейбиз - эгерде биринчи параметр экинчисинен чоң болсо, анда алардын ордун алмаштырабыз (бул үчүн return ичинде кандайдыр бир оң санды кайтарабыз). Тескери учурда ордун алмаштыруу талап кылынбайт жана биз 0 же кандайдыр бир терс санды көрсөтөбүз:

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

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

console.log(arr);

Кодду иштетүүнүн натыйжасы:

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

Мисал

Келгиле, ыңгайлуулук үчүн мурунку мисалдагы функциябыздын кодун кыскарталы:

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

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

console.log(arr);

Кодду иштетүүнүн натыйжасы:

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

Мисал

Эми болсо, функциянын жардамы менен массивди төмөндөө тартибинде иреттейли:

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

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

console.log(arr);

Кодду иштетүүнүн натыйжасы:

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

Мисал

Келгиле, объекттердин массивин 'one' ачкычы боюнча өсүү тартибинде иреттейли:

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

Кодду иштетүүнүн натыйжасы:

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

Мисал

Эми болсо, объекттердин массивин '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);

Кодду иштетүүнүн натыйжасы:

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

Мисал

Келгиле, sort методу колдонулгандан кийин массив өзгөргөнүн текшерип көрөлү:

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

console.log(arr);

Кодду иштетүүнүн натыйжасы:

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

Ошондой эле караңыз

  • filter методу,
    ал массив элементтерин фильтрлөөгө мүмкүндүк берет