根据字符串中数字对数组中的字符串排序 JavaScript


我们有个字符串数组,其中每一个字符串包含一个或多个数字,如下所示 −

const arr = ['di5aster', 'ca1amity', 'cod3', 'ho2me3', 'ca11ing'];

我们需要编写一个排序函数,按照字符串中数字的升序排列此数组。正确的顺序如下 −

const output = [ 'ca1amity', 'cod3', 'di5aster', 'ca11ing', 'ho2me3' ];

因此,我们来编写此问题的代码 −

示例

const arr = ['di5aster', 'ca1amity', 'cod3', 'ho2me3', 'ca11ing'];
const filterNumber = str => {
   return +str
   .split("")
   .filter(el => el.charCodeAt() >= 48 && el.charCodeAt() <= 57)
   .join("");
};
const sorter = (a, b) => {
   return filterNumber(a) - filterNumber(b);
};
arr.sort(sorter);
console.log(arr);

输出

控制台中的输出将如下所示 −

[ 'ca1amity', 'cod3', 'di5aster', 'ca11ing', 'ho2me3' ]

更新于: 26-Aug-2020

72 次浏览

**开始您的事业**

完成课程获取认证

开始学习
广告