JavaScript 自然排序
我们有一个含有数字和字符串的数组,我们需要对数组进行分类,将数字进行分类并置于字符串前面,然后按照字母顺序对字符串进行分类。
例如
假设这是我们的数组 -
const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];
输出应如下所示 -
[1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd']
因此,我们来编写此代码 -
const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9]; const sorter = (a, b) => { if(typeof a === 'number' && typeof b === 'number'){ return a - b; }else if(typeof a === 'number' && typeof b !== 'number'){ return -1; }else if(typeof a !== 'number' && typeof b === 'number'){ return 1; }else{ return a > b ? 1 : -1; } } arr.sort(sorter); console.log(arr);
控制台中的输出将是 -
[ 1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd' ]
广告