JavaScript 数组中按升序排列数字和按字母顺序排列字符串

问题

我们需要编写一个接受数字和字符串数组的 JavaScript 函数。我们的函数应该返回一个数组,该数组首先按升序排列数字,然后按字母顺序排列字符串。

这些值必须保持其原始类型。

示例

以下是代码 -

const arr = [5, 8, 'car', 'dad', 'amber', 1, 12, 76, 'bat'];

const separateSort = (arr = []) => {

   const sorter = (a, b) => {

      if(typeof a === 'number' && typeof b === 'string'){

         return -1;

      };

      if(typeof a === 'string' && typeof b === 'number'){

         return 1;

      };

      if(typeof a === 'string' && typeof b === 'string'){

         return a.charCodeAt(0) - b.charCodeAt(0);

      };

      return a - b;

   };

   const res = arr.sort(sorter);

   return res;

};

console.log(separateSort(arr));

输出结果

以下是控制台输出 -

[

   1, 5,

   8, 12,

   76, 'amber',

   'bat', 'car',

   'dad'

]

以上是 JavaScript 数组中按升序排列数字和按字母顺序排列字符串 的全部内容, 来源链接: utcz.com/z/360499.html

回到顶部