วิธี sort
วิธี sort ดำเนินการเรียงลำดับอาร์เรย์
ตามลำดับพจนานุกรมและคืนค่าอาร์เรย์ที่ถูกเปลี่ยนแปลงแล้ว
สามารถระบุฟังก์ชันสำหรับการเรียงลำดับของคุณเองเป็นพารามิเตอร์เสริมได้
ไวยากรณ์
อาร์เรย์.sort([ฟังก์ชัน]);
ตัวอย่าง
มาลองเรียงลำดับอาร์เรย์กัน:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
ผลลัพธ์จากการทำงานของโค้ด:
['a', 'b', 'c', 'd']
ตัวอย่าง
มาลองเรียงลำดับอาร์เรย์ที่มีตัวเลข:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
ผลลัพธ์จากการทำงานของโค้ด:
[1, 2, 4, 7]
ตัวอย่าง
มาลองเพิ่มตัวเลขเข้าไปในอาร์เรย์ และเรียงลำดับมัน:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
ในผลลัพธ์จากการทำงานของโค้ด เราจะเห็นว่าตัวเลขไม่ได้เรียงลำดับ จากน้อยไปหามาก แต่เรียงตามลำดับพจนานุกรม, นั่นคือตัวเลขถูกเปรียบเทียบกันเหมือนสตริง โดยการเปรียบเทียบจะทำทีละตัวอักษร ว่าค่าโค้ดของตัวอักษรแรก มากกว่าค่าโค้ดของตัวถัดไปหรือไม่ เป็นต้น ผลลัพธ์:
[1, 111, 123, 2, 4, 7]
ตัวอย่าง
ทีนี้มาลองเรียงลำดับอาร์เรย์
ด้วยฟังก์ชัน ซึ่งเราจะกำหนดเงื่อนไขไว้ในนั้น -
ถ้าพารามิเตอร์แรกมากกว่าพารามิเตอร์ที่สอง ให้สลับตำแหน่งมัน
(สำหรับสิ่งนี้ใน return ให้ระบุจำนวนบวกใดๆ)
ในกรณีตรงกันข้ามไม่จำเป็นต้องสลับตำแหน่ง และเราระบุ
0 หรือจำนวนลบใดๆ:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
[1, 2, 4, 7, 111, 123]
ตัวอย่าง
มาลองย่อโค้ดให้สั้นลงเพื่อความสะดวก ในฟังก์ชันของเราจากตัวอย่างก่อนหน้านี้:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
[1, 2, 4, 7, 111, 123]
ตัวอย่าง
และตอนนี้เรามาลองเรียงลำดับอาร์เรย์ จากมากไปหาน้อยด้วยฟังก์ชัน:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
[123, 111, 7, 4, 2, 1]
ตัวอย่าง
มาลองเรียงลำดับอาร์เรย์ของอ็อบเจ็กต์
ตามคีย์ 'one' จากน้อยไปหามาก:
let 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);
ผลลัพธ์จากการทำงานของโค้ด:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
ตัวอย่าง
และตอนนี้มาลองเรียงลำดับอาร์เรย์ของอ็อบเจ็กต์
ตามคีย์ 'two':
let 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);
ผลลัพธ์จากการทำงานของโค้ด:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
ตัวอย่าง
มาลองตรวจสอบว่าอาร์เรย์เปลี่ยนไปหรือไม่หลังจาก
ใช้วิธี sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
ผลลัพธ์จากการทำงานของโค้ด:
['a', 'b', 'c', 'd']
ดูเพิ่มเติม
-
วิธี
filter,
ซึ่งช่วยกรององค์ประกอบของอาร์เรย์