สมมติว่าเรามีสตริงคำที่คั่นด้วยเครื่องหมายจุลภาคเช่นนี้ −
const str = 'JAY, ROB';
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงดังกล่าว ฟังก์ชันสามารถสร้างคำใหม่จากคำในสตริงที่ตัวอักษรนำหน้ามีค่ามากกว่าตัวถัดไปเสมอ (เช่น A มากกว่า B)
ตัวอย่างเช่น ในสตริงด้านบน เราต้องการเปรียบเทียบตัวอักษรตัวแรกของ JAY กับตัวอักษรตัวแรกของ ROB
เนื่องจาก J มาก่อนเมื่อเปรียบเทียบกับ R ตัวอักษรตัวแรกของคำใหม่จะเป็น J การเปรียบเทียบตัวที่สอง เนื่องจาก A มาก่อน R จึงกลายเป็นตัวอักษรตัวที่สอง ตัวอักษรที่สามจึงกลายเป็น R ในทำนองเดียวกัน
ดังนั้นคำสุดท้ายจะเป็น 'JAROBY'
โปรดทราบว่าสำหรับตัวอย่างนี้ เรานำสตริงที่มีคำเพียงสองคำ แต่เราต้องเขียนวิธีแก้ปัญหาที่ใช้ได้กับคำมากกว่าสองคำเช่นกัน
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const str = `JAY,ROB,APPLE,AAKO`; const specialSort = (str = '') => { let len = str.replace(/,/g, "").length; const sorter = (str, b) => { if(str === "" || str === null) return 1; if(b === "" || b === null) return −1; if(str === b) return 0; return str < b ? −1 : 1; }; let res = ""; let sorted = str.split(",").sort(sorter); while (res.length < len){ res += sorted[0][0]; sorted[0] = sorted[0].slice(1); sorted = sorted.sort(sorter); } return res; }; console.log(specialSort(str));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
AAAJAKOPPLEROBY