JavaScript-регистронезависимая универсальная сортировка для массивов - PullRequest
0 голосов
/ 31 мая 2018

Я читал предыдущий вопрос по этой теме: Lodash: как выполнить сортировку без учета регистра для коллекции с помощью orderBy?

Я обнаружил, что lodash правильно сортирует числа и датуколонны.Мне нужна сортировка без учета регистра для строковых столбцов.В настоящее время у нас есть следующая реализация:

const sorted = _.orderBy(this, function (o)  {
            if ($.isNumeric(o[column])) {
                return parseFloat(o[column]);
            }

            return (o[column]).toLowerCase();
        }, direction);
        
        this.clear();
    
        for (let i = 0; i < sorted.length; i++) {
            this.push(sorted[i]);
        }

Меня беспокоит то, что реализация не будет правильно обрабатывать даты.Нужно ли здесь что-нибудь особенное для свиданий?

1 Ответ

0 голосов
/ 01 июня 2018

_.sortBy может сортировать даты - при условии, что все значения в столбце являются датами, вам нужно только проверить тип и вернуть дату:

const sorted = _.orderBy(this, function(o) {
  if ($.isNumeric(o[column])) {
    return parseFloat(o[column]);
  }

  if (_.isDate(o[column])) {
    return o[column];
  }

  return (o[column]).toLowerCase();
}, direction);
...