Classifique a tabela clicando na tag de cabeçalho, independentemente de ser numérica, alfabética ou data

Estou tentando classificar minha mesa por javascript(só javascriptpure, não biblioteca e não framework, apenas javascriptpuro)

Cada coluna classifica-se clicando em cada tag de cabeçalho e atualmente a classificação é alfabética, mas eu preciso que a classificação seja numérica ou alfabética ou data, independentemente disso. Os dados são um Json que vem do outro lado e podem ter coluna numérica, alfabética ou de dat

Este é o meu código de classificação:

function sortMainTable(_num) {
  var table, rows, sw, i, x, y;
  table = document.getElementById("mainTable");
  sw = true;
  while (sw) {
    sw = false;
    rows = table.getElementsByTagName("tr");
    for (i = 1; i < (rows.length - 1); i++) {
      x = rows[i].getElementsByTagName("td")[_num];
      y = rows[i + 1].getElementsByTagName("td")[_num];
      if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
        rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
        sw = true;
        break;
      }
    }
  }
}

Exemplo json:

places = [{
    "city": "Los Angeles",
    "country": "USA",
    "price:": "130.90",
    "date": "02/12/2015"
  },
  {
    "city": "Boston",
    "country": "USA",
    "price:": "11.40",
    "date": "10/04/2014",
  },
  {
    "city": "Chicago",
    "country": "USA",
    "price:": "320.40"
    "date": "06/05/2017",
  },
]

Como eu disse acima, eu preciso que a classificação seja numérica ou alfabética ou data, independentemente disso. (se a coluna for numérica, a classificação da tabela será ordenada por coluna numérica e, se a coluna for alfabética, a classificação da tabela será ordenada por coluna alfabética; se a coluna for data, a classificação da tabela será ordenada por coluna de data)

Qualquer ideia

Obrigado

questionAnswers(2)

yourAnswerToTheQuestion