Историческая функция $.unique()

Определение и применение

Функция $.unique() удаляла повторные ссылки на DOM-узлы и упорядочивала массив по расположению узлов в документе. Она полезна для понимания старого кода, объединяющего результаты нескольких обходов DOM.

Синтаксис

JavaScript
const result = $.unique(nodes);

Параметры и возвращаемое значение

nodes — обычный массив DOM-элементов. Массив изменяется на месте, и возвращается тот же массив. Если один узел встречается несколько раз, остаётся одна ссылка. Два разных элемента с одинаковыми атрибутами не считаются дубликатами.

Функция не предназначена для удаления повторных строк или чисел. Для отсоединённых узлов или узлов разных документов общий порядок страницы может быть не определён.

Особенности и совместимость

Появилась в 1.1.3; с 1.4 результат упорядочивается по документу. С 3.0 это устаревший псевдоним $.uniqueSort(), удалённый в 4.0. Для массива используйте современную функцию $.uniqueSort(); для коллекции с 3.7 есть .uniqueSort().

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

Документация

Пример старого кода

Повторная ссылка на узел: попробуйте сами

Массив В, А, В превращается в А, В и остаётся тем же объектом массива. Используется jQuery 3.1.1.

index.html
HTML
<ul>
  <li>А</li>
  <li>Б</li>
  <li>В</li>
</ul>
<pre id="result"></pre>
main.js
JavaScript
const elements = $('li').get()
const nodes = [elements[2], elements[0], elements[2]]
const result = $.unique(nodes)
$('#result').text(result.map((node) => node.textContent).join(', ') + ' | тот же массив: ' + (result === nodes))