根據字串中數字對陣列中的字串排序 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' ]
廣告