簡體   English   中英

我想以數字方式對字符串進行排序

[英]I would like to sort strings in a numerical manner

我有一個排序 function 與考試分數列的反向箭頭按鈕綁定

但是我不知道如何正確排序它們

下面的代碼返回

[不適用、不適用、99%、90%、... 20%、100%、10%、0%]

[0%, 10%, 100%, 20%, ... 90%, 99%, 不適用, 不適用]

反之亦然

      // Score Sort
      if(this.scoreSort && this.sortColumn === 'Score'){
        const sortedData = data.sort((a, b) => {
          const titleA = a.Score ? a.Score : '';
          const titleB = b.Score ? b.Score : '';
          if(titleA > titleB){ return this.scoreSort ?  1 : -1 }
          if(titleA < titleB){ return this.scoreSort ? -1 :  1 }
          return 0;
        });
        return sortedData;
      } if(!this.scoreSort && this.sortColumn === 'Score') {
        const sortedData = data.sort((a, b) => {
          const titleA = a.Score ? a.Score : '';
          const titleB = b.Score ? b.Score : '';
          if(titleA > titleB){ return this.scoreSort ?  1 : -1 }
          if(titleA < titleB){ return this.scoreSort ? -1 :  1 }
          return 0;
        });
        return sortedData;
      }

我怎樣才能像下面的數組那樣對它們進行排序?

[100%, 99%, 90%, ... 20%, 10%, 0%, 不適用, 不適用]

[0%, 10%, 20%, ... 90%, 99%, 100%, 不適用, 不適用]

反之亦然

您可以將localeComparenumeric:true選項一起使用,如下所示:

 const input = ["N/A", "N/A", "99%", "90%", "20%", "100%", "10%", "0%"], sorted = input.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })) console.log(sorted)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM