JavaScript 中的自然排序

javascriptweb developmentobject oriented programmingfront end technology更新于 2026/1/16 23:40:17

我们有一个包含一些数字和一些字符串的数组,我们需要对数组进行排序,以便对数字进行排序并将其放在每个字符串之前,然后按字母顺序排列字符串。

例如

假设这是我们的数组 −

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'
]

相关文章


有用资源