随身笔记
随身笔记

js字母数字数组混合排序

function parseItem (item) {
  const [, stringPart = '', numberPart = 0] = /(^[a-zA-Z]*)(\d*)$/.exec(item) || [];
  return [stringPart, numberPart];
}

function sort (array) {
  return array.sort((a, b) => {
    const [stringA, numberA] = parseItem(a);
    const [stringB, numberB] = parseItem(b);
    const comparison = stringA.localeCompare(stringB);
    return comparison === 0 ? Number(numberA) - Number(numberB) : comparison;
  });
}

console.log(sort(['A1', 'A10', 'A11', 'A12', 'A2', 'A3', 'A4', 'B10', 'B2', 'F1', 'F12', 'F3']))
console.log(sort(['a25b', 'ab', 'a37b']))

 

[A1, A10, A11, A12, A2, A3, A4, B10, B2, F1, F12, F3]   
转为
[A1, A2, A3, A4, A10, A11, A12, B2, B10, F1, F3, F12]

 

https://www.codenong.com/4340227/

 

 

 

随身笔记

js字母数字数组混合排序
function parseItem (item) { const [, stringPart = '', numberPart = 0] = /(^[a-zA-Z]*)(\d*)$/.exec(item) || []; return [stringPart, numberPart]; } function sort (arr…
扫描二维码继续阅读
2022-04-27