var seen = {};
$('a').each(function() {
var txt = $(this).text();
if (seen[txt])
$(this).remove();
else
seen[txt] = true;
});
Пояснение:
seen
- это объект, который отображает любой ранее увиденный текст в true
. Он функционирует как набор , содержащий все ранее просмотренные тексты. Строка if (seen[txt])
проверяет, есть ли текст в наборе. Если это так, мы уже видели этот текст раньше, поэтому мы удалим ссылку. В противном случае, это текст ссылки, который мы видим впервые. Мы добавляем его в набор, чтобы все дальнейшие ссылки с тем же текстом были удалены.
Альтернативный способ представления набора - использовать массив, содержащий все значения. Тем не менее, это сделало бы это намного медленнее, так как, чтобы увидеть, находится ли значение в массиве, нам нужно сканировать весь массив каждый раз. Поиск ключа в объекте с помощью seen[txt]
очень быстр в сравнении.