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