JavaScript 自然排序


我們有一個含有數字和字串的陣列,我們需要對陣列進行分類,將數字進行分類並置於字串前面,然後按照字母順序對字串進行分類。

例如

假設這是我們的陣列 -

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];

輸出應如下所示 -

[1, 6, 7, 9, 47, 'afv', 'bdf', 'fdf', 'svd']

因此,我們來編寫此程式碼 -

const arr = [1, 'fdf', 'afv', 6, 47, 7, 'svd', 'bdf', 9];
const sorter = (a, b) => {
   if(typeof a === 'number' && typeof b === 'number'){
      return a - b;
   }else if(typeof a === 'number' && typeof b !== 'number'){
      return -1;
   }else if(typeof a !== 'number' && typeof b === 'number'){
      return 1;
   }else{
      return a > b ? 1 : -1;
   }
}
arr.sort(sorter);
console.log(arr);

控制檯中的輸出將是 -

[
   1, 6, 7,
   9, 47, 'afv',
   'bdf', 'fdf', 'svd'
]

更新於: 2020 年 9 月 10 日

716 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

入門
廣告
© . All rights reserved.