เพื่อสร้างฟังก์ชันเรียงลำดับแบบกำหนดเอง ให้เปรียบเทียบค่าแรกกับค่าที่สอง:
- ถ้าค่าแรกมากกว่าค่าที่สอง ให้คืนค่า -1
- ถ้าค่าแรกน้อยกว่าค่าที่สอง ให้คืนค่า 1
- มิฉะนั้นคืนค่า 0
กระบวนการนี้จะเรียงจากมากไปน้อย (Descending) หากต้องการน้อยไปมาก (Ascending) ให้กลับลำดับการคืนค่า
ตัวอย่างโค้ด
var name = ['David', 'Adam', 'John', 'Bob'];
name.sort(function (first, second) {
if (first > second) {
return -1;
}
if (first < second) {
return 1;
}
return 0;
});
console.log(name);รันด้วยคำสั่ง:
node fileName.js
ชื่อไฟล์: demo263.js
ผลลัพธ์
PS C:\Users\Amit\javascript-code> node demo263.js [ 'John', 'David', 'Bob', 'Adam' ]
คำอธิบายเพิ่มเติม: ฟังก์ชันเปรียบเทียบ (comparator) ควรคืนค่าติดลบ ศูนย์ หรือบวก เพื่อบอกลำดับการเรียง สำหรับตัวอักษร ใช้ localeCompare() จะง่ายกว่า