สมมติว่าเรามีสองอาร์เรย์ทั้งคู่มีสตริง อันหนึ่งต้องจัดเรียงตามตัวอักษร แต่ถ้าอาร์เรย์ที่เราต้องจัดเรียงมีคำบางคำจากอีกอาร์เรย์ คำเหล่านั้นควรปรากฏที่ด้านบนสุด และส่วนที่เหลือควรจัดเรียงตามตัวอักษร
มาเขียนฟังก์ชัน เช่น excludeSorting(arr, ex) โดย arr คืออาร์เรย์ที่จะจัดเรียง และ ex คืออาร์เรย์ของสตริงที่ควรปรากฏด้านบนใน arr (ถ้าปรากฏใน arr)
ตัวอย่าง
const arr = ['apple', 'cat', 'zebra', 'umbrella', 'disco', 'ball', 'lemon', 'kite', 'jack', 'nathan']; const toBeExcluded = ['disco', 'zebra', 'umbrella', 'nathan']; const excludeSort = (arr, ex) => { arr.sort((a, b) => { if(ex.includes(a)){ return -1; }else if(ex.includes(b)){ return 1; } return a > b ? 1 : -1 }); }; excludeSort(arr, toBeExcluded); console.log(arr);ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้
[ 'nathan', 'disco', 'umbrella', 'zebra', 'apple', 'ball', 'cat', 'jack', 'kite', 'lemon' ]