เราต้องเขียนฟังก์ชันจัดเรียงที่จัดเรียงอาร์เรย์ตามเนื้อหาของอีกอาร์เรย์หนึ่ง
ตัวอย่าง - เราต้องจัดเรียงอาร์เรย์ต้นฉบับให้องค์ประกอบที่อยู่ใน sortOrder ด้านล่างปรากฏตรงหน้าสุดของอาร์เรย์ต้นฉบับ และตัวอื่นๆ คงลำดับเดิม:
const originalArray = ['Apple', 'Cat', 'Fan', 'Goat', 'Van', 'Zebra']; const sortOrder = ['Zebra', 'Van'];
ตัวอย่างโค้ด
const originalArray = ['Apple', 'Cat', 'Fan', 'Goat', 'Van', 'Zebra'];
const sortOrder = ['Zebra', 'Van'];
const sorter = (a, b) => {
if (sortOrder.includes(a)) {
return -1;
}
if (sortOrder.includes(b)) {
return 1;
}
return 0;
};
originalArray.sort(sorter);
console.log(originalArray);
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
['Zebra', 'Van', 'Apple', 'Cat', 'Fan', 'Goat']