2013-05-08 4 views
1

Я пытаюсь понять, где моя ошибка, но не может видеть это прямо сейчас, мой JS является действительным, и работать с другими шаблонами HTML:

//DATES : wrap the submenu by year 
var arr = $("#submenu a").map(function() { 
return $(this).attr('year'); 
}).get(); 
var results = $.unique(arr); 
var i; 

предупреждение (результаты);

Это прекрасно работает, но не со структурой я сделал в этом Fiddle: http://jsfiddle.net/moabi/c9nbu/ и я получаю в результате: год 2013, год 2012, год 2013 не уникальна, не так ли?!

+0

* "Сортирует массив элементов DOM, на месте с удалением дубликатов **. Обратите внимание, что это работает только с массивами элементов DOM, а не строк или цифр. ** «* -> http://api.jquery.com/jquery.unique/ –

ответ

2

jQuery.unique() только сортирует и удаляет дубликаты из массива элементов DOM в документации jQuery, а не в виде массива строк.

Если вы хотите удалить Dups из массива строк, вы можете использовать эту функцию:

function removeDups(arr) { 
    var result = [], map = {}, item; 
    for (var i = 0; i < arr.length; i++) { 
     item = arr[i]; 
     if (!map[item]) { 
      result.push(item); 
      map[item] = true; 
     } 
    } 
    return(result); 
} 

Вот ваш jsFiddle модифицированного использовать его: http://jsfiddle.net/jfriend00/MBMsz/

+0

ok, спасибо за объяснение и пример, очень ясно :-) – moabi

Смежные вопросы