前端實現按照學期進行排序(JS之sort)

   最近開發中遇到一個排序的問題,比如前端需要對下列數據進行排序:

           "第1學期"、"第2學期"、"第3學期"、"第4學期"、"第5學期"、"第6學期"、"第7學期"、"第8學期"

說實話,一直覺得像排序這種數據處理,應該後端實現,可是由於這塊邏輯太複雜了,後端代碼已經很複雜了,在這種前後端都可以做的情況下,想想,還是前端來實現吧。

     最初的思路是使用switch來實現,對應的case是 "第X學期",用新的數據push進去。後來,因爲種種原因,前端又不需要排序 了。這兩天準備重溫下JS基礎,看到sort函數時,突然想,好像這樣也可以哎

  function mySort(data: any[]) {
    if (Array.isArray(data)) {
      data.sort((a: any, b: any) => {
        return a.termName.slice(1, 2) - b.termName.slice(1, 2);
      });
    }
  }

算不上“發現新大陸”,但對自己而言,對於開發中的排序又有了新的解決思路,記錄下,說不定哪天就忘記了。

   此處是因爲被排序字段中含有數字,要是沒有數字怎麼辦?比如按照成績等級:優秀、良好及格、不及格排序

const { content = [], order = [] } = data;
        const finalContent: any[] = [];
        if (order && order.length > 0) {
          for (let i = 0; i < order.length; i += 1) {
            if (content && content.length > 0) {
              for (let j = 0; j < content.length; j += 1) {
                if (order[i].rankName === content[j].rankName) {
                  finalContent.push(content[j]);
                }
              }
            }
          }
        }

思路:

 step1:讓後端給兩個字段:content-真實的數據也是需要處理的數據,order-需要排序的順序

  step2:依次對比,按照order中的順序push

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章