Kaedah sort

Kaedah sort melakukan penyusunan array dalam susunan leksikografi dan mengembalikan array yang telah diubah. Parameter pilihan boleh menentukan fungsi tersendiri untuk penyusunan.

Sintaks

javascriptarray.sort([fungsi]);

Contoh

Mari susun array:

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

Keputusan pelaksanaan kod:

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

Contoh

Mari susun array dengan nombor:

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

Keputusan pelaksanaan kod:

javascript[1, 2, 4, 7]

Contoh

Mari tambah nombor ke dalam array dan susunkannya:

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

Hasil daripada pelaksanaan kod kita akan lihat bahawa nombor tidak disusun mengikut urutan menaik, tetapi dalam susunan leksikografi, iaitu nombor dibandingkan antara satu sama lain seperti string. Perbandingan dilakukan untuk setiap aksara, sama ada kod aksara pertama lebih besar daripada kod aksara jiran, dan seterusnya. Keputusan:

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

Contoh

Sekarang mari susun array menggunakan fungsi, di mana kita akan tentukan syarat - jika parameter pertama lebih besar daripada kedua, maka tukarkannya (untuk ini, dalam return sebarang nombor positif). Dalam kes sebaliknya, pertukaran tidak diperlukan dan kita nyatakan 0 atau sebarang nombor negatif:

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

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

console.log(arr);

Keputusan pelaksanaan kod:

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

Contoh

Mari pendekkan kod untuk kemudahan dalam fungsi kita dari contoh sebelumnya:

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

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

console.log(arr);

Keputusan pelaksanaan kod:

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

Contoh

Dan sekarang dengan menggunakan fungsi, mari susun array dalam urutan menurun:

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

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

console.log(arr);

Keputusan pelaksanaan kod:

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

Contoh

Mari susun array objek mengikut kunci 'one' dalam urutan menaik:

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

Keputusan pelaksanaan kod:

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

Contoh

Dan sekarang mari susun array objek mengikut kunci '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);

Keputusan pelaksanaan kod:

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

Contoh

Mari semak sama ada array telah berubah selepas mengaplikasikan kaedah sort:

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

console.log(arr);

Keputusan pelaksanaan kod:

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

Lihat juga

  • kaedah filter,
    yang membenarkan penapisan elemen array