function isNumber(str) {
return /^\d+$/.test(str);
}
function sort(arr) {
return arr.sort((f1, f2) => {
let flag = false;
const reg = new RegExp(/\D+|\d+/, "g");
const f1s = f1.match(reg);
const f2s = f2.match(reg);
const len = f1s.length <= f2s.length ? f1s.length : f2s.length;
for (let i = 0; i < len; i++) {
if (this.isNumber(f1s[i]) && this.isNumber(f2s[i])) {
if (parseInt(f1s[i]) === parseInt(f2s[i])) {
} else {
flag = parseInt(f1s[i]) - parseInt(f2s[i]);
break;
}
} else {
if (f1s[i] === f2s[i]) {
} else {
flag = f1s[i].localeCompare(f2s[i]);
break;
}
}
}
return flag;
})
}
// sort(['a1', 'a2', 'b1', 'a10', 'c5', 'c4'])
// ['a1', 'a2', 'a10', 'b1', 'c4', 'c5']
js对英文加数字的数组进行排序
最新推荐文章于 2024-07-14 15:54:59 发布