1,A,V,2,3,11,C
где ,
- это наш условный разделитель. Как сортировать массив так, чтобы получилось на выходе 1,2,3,11, A, C, V
?arr.sort((a, b) => {
return Number.isNaN(+a) || Number.isNaN(+b)
? a.localeCompare(b)
: a - b;
});
// или
arr.sort((a, b) => (a - b) || a.localeCompare(b));
const sorted = (arr, keys) => arr
.map(n => [ n ].concat(keys(n)))
.sort((a, b) => {
let diff = 0;
a.find((n, i) => diff = i && ((n < b[i]) ? -1 : +(n > b[i])));
return diff;
})
.map(n => n[0]);
const sortedArr = sorted(arr, n => [ +n, n.toLowerCase() ]);