Как я могу реализовать пользовательское переопределение сортировки для столбца даты таблицы для библиотеки JavaScript - PullRequest
0 голосов
/ 10 апреля 2020

Я занимаюсь разработкой библиотеки, в которой я создаю таблицу, которая может использоваться во многих проектах. У меня возникла проблема, как реализовать метод, который мог бы сортировать столбец даты? Я не могу знать раньше, в каком формате дата будет иметь ГГГГ-ММ-ДД-чч-ММ-сс или ГГГГ / ММ / ДД / чч / сс или ДД: ММ: ГГГГ и т. Д. c ... Как Могу ли я эффективно реализовать такой метод в JavaScript?

class Table {
   constructor(options) {
      this.columns = [];
      this.rows = [];
      this.tbody = null;
      this.columns = this.setcolumn();

   }

   createTable() {
      let table = document.createElement('table');
      this.tbody = table.appendchild('tbody');
      // other stuff for creating the table
   }

   setColumn() {
      if (this.columns.some(isObject))
         return this.columns;
      this.column.map((item) => {
         return {
            content: '',
            direction: 'ASC',
            type: 'string'
         }
      });
   }

   sortColumn(e) {
      const colIndex = e.cellIndex;
      const selctedColumn = this.column[colIndex];
      const sortDirAsc = (this.column[colIndex].direction === 'ASC')
      let SortData = [];
      let rows = Array.from(this.tbody.children);
      for (let i = 0; i < rows.length; i++) {
         cell = rows[i].cells;
         coltext = cell.innerText.trim().toLowercase();
         let rowdata = [coltext, row[i]];
         SortData.push(rowdata);
      }
      if ( /*column is not a date*/ ) {
         (sortDirAsc) ? SortData.sort(): SortData.reverse();
      }
      if ( /* column is a date*/ ) {
         /*provide a custum method with date format provided*/
      }

      enter code here

      for (let i = 0; i < SortData.length; i++) {
         this.tbody.appendchild(SortData[i][1]);
      }
   }
...