Помощь в сортировке, с использованием JS [закрыт]

84
13 апреля 2021, 09:10
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 1 год назад.

Улучшить вопрос

Есть код написанный на JS, но я не очень понимаю как он работает, хоть и пытался разобрать по частям, к успеху в его понимании так и не пришёл. Прошу, объясните

 document.addEventListener('DOMContentLoaded', () => {
        const getSort = ({ target }) => {
            const order = (target.dataset.order = -(target.dataset.order || -1));
            const index = [...target.parentNode.cells].indexOf(target);
            const collator = new Intl.Collator(['en', 'ru'], { numeric: true });
            const comparator = (index, order) => (a, b) => order * collator.compare(
                a.children[index].innerHTML,
                b.children[index].innerHTML
            );
            for(const tBody of target.closest('table').tBodies)
                tBody.append(...[...tBody.rows].sort(comparator(index, order)));
            for(const cell of target.parentNode.cells)
                cell.classList.toggle('sorted', cell === target);
        };
        document.querySelectorAll('.table_sort thead').forEach(tableTH => tableTH.addEventListener('click', () => getSort(event)));
    });
Answer 1

Есть некая функция, getSort, в которую заходит элемент в объекте, под пропом target, далее в target.dataset прописывается разрешение на чтение/запись кастом аттрибутов на таргете, потом находят индекс таргета среди ячеек родителя[...target.parentNode.cells].indexOf(target) После создают языкозависимый сортировщик collator и используют его для функции сортировки comparator, после перебивают tbodies таргета и используют для их сортировки ранее созданный comparator, в конце проставляет sorted из родителя через toggle, если они не являются target.

READ ALSO
Удаление div со смещением

Удаление div со смещением

Есть блокcontainer в который динамически с помощью jquery добавляются div блоки нумерованные от 0 до 9

97
Как получить children из this (не jQuery)

Как получить children из this (не jQuery)

Как получить детей из this(не jQuery) this

121
Деструктуризация массива в JavaScript

Деструктуризация массива в JavaScript

Изучаю деструктуризацию в JavaScriptМожно вытащить четные элементы из массива так

107