Сортировка списка данных, полученных через fetch

Рейтинг: 1Ответов: 0Опубликовано: 10.04.2023

Мое приложение выглядит вот так: Данные отображаются в виде списка

В шапке должна быть возможность сортировки по соответствующему полю, с этим, собственно и проблема.

По умолчанию я хочу, чтобы отображалась сортировка по дате, и делаю это таким образом:

const getData = (url) => {
    fetch(url)
        .then((response) => {
            if(response.ok) {
                return response.json();
            } else {
                throw new Error('Данные были получены с ошибкой!');
            }
        })
        .then((data) => {
            // Сортировка по умолчанию = сортировка по дате
            data.sort((a, b) => dataFormat(b.data) - dataFormat(a.data));
            // Отрисовка списка
            renderData(data);
        })
        .catch((error) => {
            console.error(error.message);
        });
};

То есть, сортирую прямо внутри fetch-запроса, но не понимаю, как правильнее записать логику сортировки по остальным полям при клике.

Пока что из идей - получать все записи из дом-дерева, при рендере засовывать в дата-атрибуты дату/размер/автора/язык и играться, например с order (так как список сделан на флексах), но сомневаюсь, что это хорошая идея, так как подразумевает перебор большого количества данных.

Возможно, есть какие-то более "элегантые" решения?
Мне не нужен готовый код, это было бы слишком нагло, я хочу получить скорее предложения по оптимизации.

Ответы

Ответов пока нет.