Metode sort

Metode sort melakukan pengurutan array dalam urutan leksikografis dan mengembalikan array yang sudah diubah. Parameter opsional dapat digunakan untuk menentukan fungsi pengurutan sendiri.

Sintaksis

javascriptarray.sort([fungsi]);

Contoh

Mari kita urutkan sebuah array:

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

Hasil eksekusi kode:

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

Contoh

Mari kita urutkan array berisi angka:

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

Hasil eksekusi kode:

javascript[1, 2, 4, 7]

Contoh

Mari kita tambahkan angka ke dalam array dan urutkan:

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

Sebagai hasil eksekusi kode kita akan melihat bahwa angka tidak disusun dalam urutan menaik, tetapi dalam urutan leksikografis, yaitu angka dibandingkan satu sama lain seperti string. Perbandingan dilakukan per karakter, apakah kode karakter pertama lebih besar dari kode karakter tetangga, dan seterusnya. Hasilnya:

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

Contoh

Sekarang mari kita urutkan array menggunakan fungsi, di mana kita tentukan kondisi - jika parameter pertama lebih besar dari kedua, maka tukar posisinya (untuk ini, dalam return berikan angka positif apa pun). Dalam kasus sebaliknya, penukaran tidak diperlukan dan kita tentukan 0 atau angka negatif apa pun:

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

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

console.log(arr);

Hasil eksekusi kode:

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

Contoh

Mari kita persingkat kode dalam fungsi kita dari contoh sebelumnya untuk kenyamanan:

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

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

console.log(arr);

Hasil eksekusi kode:

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

Contoh

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

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

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

console.log(arr);

Hasil eksekusi kode:

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

Contoh

Mari kita urutkan array objek berdasarkan 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);

Hasil eksekusi kode:

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

Contoh

Dan sekarang mari kita urutkan array objek berdasarkan 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);

Hasil eksekusi kode:

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

Contoh

Mari kita periksa apakah array berubah setelah penerapan metode sort:

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

console.log(arr);

Hasil eksekusi kode:

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

Lihat juga

  • metode filter,
    yang memungkinkan untuk memfilter elemen array