jQuery функция $.uniqueSort()
Определение и применение
jQuery функция $.uniqueSort() производит сортировку массива элементов DOM с удалением дубликатов.
Функция $.uniqueSort() выполняет поиск по массиву объектов, сортируя массив и удаляя дубликаты узлов. Узел считается дубликатом, если он точно такой же, как и узел, который уже находится в массиве. Два различных узла с одинаковыми атрибутами не считаются дубликатами. Эта функция работает только на простых JavaScript массивах элементов DOM, и в основном используется внутри jQuery. Вероятно, вам никогда не понадобится её использовать.
До версии jQuery 3.0 этот метод назывался $.unique(). Начиная с версии jQuery 1.4 результаты всегда будут возвращаться в порядке следования документа.
jQuery синтаксис:
$.uniqueSort( arr )arr - Array
Добавлен в версии jQuery
1.12-2.2Значения параметров
| Параметр | Описание |
|---|---|
| arr | Массив, содержащий DOM элементы. |
Метод коллекции
Для объекта jQuery с версии 3.7 доступен
.uniqueSort(). В отличие от функции $.uniqueSort(array), он возвращает коллекцию jQuery для продолжения цепочки.
Пример использования
Функция $.uniqueSort() — пример 1
Нажмите . Используйте кнопки в результате и наблюдайте изменения. Измените JavaScript и запустите пример повторно. Используется jQuery 4.0.0.
index.html
<button>Клик</button>
<ul>
<li>1</li>
<li class="even">2</li>
<li>3</li>
<li class="even">4</li>
<li>5</li>
</ul>
main.js
$(document).ready(function () {
$('button').click(function () {
// задаем функцию при нажатиии на элемент <button>
const listElements = $('li').get() // возвращаем массив DOM элементов li
console.log(
'Все элементы li',
listElements.map((element) => element.textContent),
) // выводим в консоль значение переменной listElements
const extraListElements = listElements.concat($('.even').get()) // добавляем к массиву дополнительно элементы с классом even и инициализируем переменную этим значением
console.log(
'Дополнительно добавим к массиву элементы с классом even',
extraListElements.map((element) => element.textContent),
) // выводим в консоль значение переменной extraListElements
const sortElements = $.uniqueSort(extraListElements) // сортируем массив элементов DOM с удалением дубликатов
console.log(
'Сортируем массив элементов DOM с удалением дубликатов',
sortElements.map((element) => element.textContent),
) // выводим в консоль значение переменной sortElements
})
})
style.css
body {
margin: 16px;
font:
16px/1.5 system-ui,
sans-serif;
overflow-wrap: anywhere;
}
img,
input,
select,
textarea,
button {
max-width: 100%;
}
Нажмите , чтобы запустить пример.
В этом примере с использованием jQuery метода
.click()
мы при нажатии на элемент
<button>
(кнопка) вызываем функцию, которая:
-
С помощью метода get() возвращает массив DOM элементов
<li>, и инициализируем переменную этим значением. После этого выводим это значение в консоль. - С помощью JavaScript метода concat() добавляем к этому массиву новый массив, который состоит из всех элементов с классом even. Обратите внимание, что мы так же используем метод get(), чтобы поместить эти DOM элементы в массив. После этого выводим это значение в консоль.
- С использованием функции $.uniqueSort() мы производим сортировку переменной extraListElements, содержащей массив элементов DOM, удаляя при этом дубликаты. После этого выводим это значение в консоль. В результате сортировки получившийся массив соответствует значению, содержащемуся в переменной listElements.