อาร์เรย์ที่มี undefined: ["Mike", undefined, "Adam", "Bob", undefined, "Carol"]
ใช้ sort() พร้อม comparator จัดการ undefined
ตัวอย่างโค้ด
var studentNames = ["Mike", undefined, "Adam", "Bob", undefined, "Carol"];
var sortingInAscendingOrder = (first, second) => {
if (first === "") return 1;
if (second === "") return -1;
return first.localeCompare(second);
};
studentNames.sort(sortingInAscendingOrder);
console.log(studentNames);รันด้วยคำสั่ง:
node fileName.js
ชื่อไฟล์: demo275.js
ผลลัพธ์
PS C:\Users\Amit\javascript-code> node demo275.js [ 'Adam', 'Bob', 'Carol', 'Mike', undefined, undefined ]
คำอธิบาย: Comparator ตรวจสอบค่าว่าง (แต่โค้ดตัวอย่างตรวจสอบ === "" ไม่ใช่ undefined - อาจเป็น oversight) localeCompare() เรียงตัวอักษร ตัว undefined จะถูกย้ายไปท้าย
แก้ไขที่ถูกต้อง: ตรวจสอบ first == null หรือ typeof first === 'undefined'