สมมติว่าเรามีอาร์เรย์ของวัตถุที่มีคะแนนของผู้เล่นบางคนในเกมไพ่ -
const scorecard = [{ name: "Zahir", score: 23 }, { name: "Kabir", score: 13 }, { name: "Kunal", score: 29 }, { name: "Arnav", score: 42 }, { name: "Harman", score: 19 }, { name: "Rohit", score: 41 }, { name: "Rajan", score: 34 }];
นอกจากนี้เรายังมีตัวแปรตามชื่อ selfName ที่มีชื่อของผู้เล่นรายใดรายหนึ่ง -
const selfName = 'Arnav';
เราจำเป็นต้องเขียนฟังก์ชันที่จัดเรียงอาร์เรย์ของ Scorecard ตามลำดับตัวอักษร และทำให้แน่ใจว่าวัตถุที่มีชื่อเหมือนกับ selfName ปรากฏที่ด้านบน (ที่ดัชนี 0)
ดังนั้น มาเขียนโค้ดสำหรับปัญหานี้กันเถอะ -
ตัวอย่าง
const scorecard = [{ name: "Zahir", score: 23 }, { name: "Kabir", score: 13 }, { name: "Kunal", score: 29 }, { name: "Arnav", score: 42 }, { name: "Harman", score: 19 }, { name: "Rohit", score: 41 }, { name: "Rajan", score: 34 }]; const selfName = 'Arnav'; const sorter = (a, b) => { if(a.name === selfName){ return -1; }; if(b.name === selfName){ return 1; }; return a.name < b.name ? -1 : 1; }; scorecard.sort(sorter); console.log(scorecard);
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ { name: 'Arnav', score: 42 }, { name: 'Harman', score: 19 }, { name: 'Kabir', score: 13 }, { name: 'Kunal', score: 29 }, { name: 'Rajan', score: 34 }, { name: 'Rohit', score: 41 }, { name: 'Zahir', score: 23 } ]