Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การจัดเรียงอาร์เรย์ของวัตถุตามอาร์เรย์ JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุและอาร์เรย์ของสตริงเช่นนี้ −

ตัวอย่าง

const orders = [
   { status: "pending"},
   { status: "received" },
   { status: "sent" },
   { status: "pending" }
];
const statuses = ["pending", "sent", "received"];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์สองอาร์เรย์ดังกล่าว วัตถุประสงค์ของฟังก์ชันควรจะจัดเรียงอาร์เรย์คำสั่งตามองค์ประกอบของอาร์เรย์สถานะ

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

ตัวอย่าง

const orders = [
   { status: "pending" },
   { status: "received" },
   { status: "sent" },
   { status: "pending" }
];
const statuses = ["pending", "sent", "received"];
const sortByRef = (orders, statuses) => {
   const sorter = (a, b) => {
      return statuses.indexOf(a.status) - statuses.indexOf(b.status);
   };
   orders.sort(sorter);
};
sortByRef(orders, statuses); console.log(orders);

ผลลัพธ์

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

[
   { status: 'pending' },
   { status: 'pending' },
   { status: 'sent' },
   { status: 'received' }
]