Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เรียงอาร์เรย์ตามการมีฟิลด์ในอ็อบเจกต์ JavaScript

สมมติว่าเรามีอาร์เรย์อ็อบเจกต์ดังนี้

const people = [
  { firstName: 'Ram', id: 301 },
  { firstName: 'Shyam', lastName: 'Singh', id: 1016 },
  { firstName: 'Dinesh', lastName: 'Lamba', id: 231 },
  { id: 341 },
  { firstName: 'Karan', lastName: 'Malhotra', id: 441 },
  { id: 8881 },
  { firstName: 'Vivek', id: 301 }
];

เราต้องเรียงอาร์เรย์ ให้อ็อบเจกต์ที่มี firstName และ lastName ทั้งคู่อยู่หน้าสุด ตามด้วยอ็อบเจกต์ที่มี firstName หรือ lastName เพียงอย่างใดอย่างหนึ่ง และสุดท้ายคืออ็อบเจกต์ที่ไม่มีทั้งคู่

โค้ด

ตัวอย่าง

const people = [
  { firstName: 'Ram', id: 301 },
  { firstName: 'Shyam', lastName: 'Singh', id: 1016 },
  { firstName: 'Dinesh', lastName: 'Lamba', id: 231 },
  { id: 341 },
  { firstName: 'Karan', lastName: 'Malhotra', id: 441 },
  { id: 8881 },
  { firstName: 'Vivek', id: 301 }
];
const sorter = (a, b) => {
  if(a.firstName && a.lastName){
    return -1;
  }else if(b.firstName || b.lastName){
    return 1;
  }else{
    return -1;
  };
};
people.sort(sorter);
console.log(people);

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น

[
  { firstName: 'Karan', lastName: 'Malhotra', id: 441 },
  { firstName: 'Dinesh', lastName: 'Lamba', id: 231 },
  { firstName: 'Shyam', lastName: 'Singh', id: 1016 },
  { firstName: 'Ram', id: 301 },
  { firstName: 'Vivek', id: 301 },
  { id: 8881 },
  { id: 341 }
]