Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp mảng alphanumeric (số và chữ) trong JavaScript

Sắp xếp mảng chuỗi alphanumeric: số đơn lẻ trước (tăng dần), sau đó chuỗi có chữ+c số: sắp theo chữ cái rồi theo số.

Ví dụ

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);       let i = 0; let len = Math.min(aPart.length, bPart.length);       while (i < len && aPart[i] === bPart[i]) { i++; };          if (i === len) {             return aPart.length - bPart.length;       };       if (isNumber(aPart[i]) && isNumber(bPart[i])) {          return aPart[i] - bPart[i];       };       return aPart[i].localeCompare(bPart[i]); };       arr.sort(sorter); }; alphaNumericSort(arr); console.log(arr);

Kết quả

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