根据字符串中数字对数组中的字符串排序 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' ]
广告