根據字串中數字對陣列中的字串排序 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 次瀏覽

**開始您的事業**

完成課程獲取認證

開始學習
廣告