วิธี 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,
    ซึ่งช่วยกรององค์ประกอบของอาร์เรย์