Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 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)));
});
Есть некая функция, getSort
, в которую заходит элемент в объекте, под пропом target,
далее в target.dataset
прописывается разрешение на чтение/запись кастом аттрибутов на таргете, потом находят индекс таргета среди ячеек родителя[...target.parentNode.cells].indexOf(target)
После создают языкозависимый сортировщик collator
и используют его для функции сортировки comparator
, после перебивают tbodies
таргета и используют для их сортировки ранее созданный comparator
, в конце проставляет sorted
из родителя через toggle
, если они не являются target
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть блокcontainer в который динамически с помощью jquery добавляются div блоки нумерованные от 0 до 9
Изучаю деструктуризацию в JavaScriptМожно вытащить четные элементы из массива так