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

วิธีจัดเรียงอาร์เรย์ตัวเลข/ตัวอักษรและตัวเลขผสมใน JavaScript


สมมติว่าเรามีอาร์เรย์ของสตริงตัวอักษรและตัวเลขเช่นนี้ -

const arr =['A1', 'A10', 'A11', 'A12', 'A3A', 'A3B', 'A3', 'A4', 'B10', 'B2', 'F1' , '1', '2', 'F3'];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ซึ่งในอาร์เรย์หนึ่งเป็นอาร์กิวเมนต์เดียวเท่านั้น

และฟังก์ชันควรจัดเรียงอาร์เรย์นี้แทน −

  • สตริงที่มีเฉพาะตัวเลขควรอยู่ในลำดับที่มากขึ้นตามลำดับ
  • สตริงที่ประกอบด้วยตัวอักษรและตัวเลขควรจัดเรียงตามลำดับตัวอักษรก่อนแล้วจึงเรียงตามลำดับตัวเลขที่เพิ่มขึ้น

ดังนั้นผลลัพธ์ควรมีลักษณะดังนี้ −

เอาต์พุตคอนสตรัค =['1', '2', 'A1', 'A2', 'A3', 'A3A', 'A3B', 'A4', 'A10', 'A11', 'A12' , 'B2', 'B10', 'F1', 'F3'];

ตัวอย่าง

const arr =['A1', 'A10', 'A11', 'A12', 'A3A', 'A3B', 'A3', 'A4', 'B10', 'B2', 'F1' , '1', '2', 'F3'];const alphaNumericSort =(arr =[]) => { const sorter =(a, b) => { const isNumber =(v) => (+v) toString() ===v; const aPart =a.match(/\d+|\D+/g); const bPart =b.match(/\d+|\D+/g); ให้ i =0; ให้ len =Math.min(aPart.length, bPart.length); ในขณะที่ (i  

ผลลัพธ์

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

<ก่อนหน้า>[ '1', '2', 'A1', 'A3', 'A3A', 'A3B', 'A4', 'A10', 'A11', 'A12', 'B2', 'B10 ', 'F1', 'F3']