The description of jQuery.unique() states:
Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays
Although it works, you should probably take into consideration the function description. If the creators say that it is not designed for filtering arrays of anything else than dom elements, you should probably listen to them.
Besides, this functionality is quite easy to be reproduced :
function unique(array){
return array.filter(function(el, index, arr) {
return index === arr.indexOf(el);
});
}
(demo page)
In order for this code to work in all browsers (including ie7 that doesn't support some array features - such as indexOf
or filter
), here's a rewrite using jquery functionalities :
Array.filter
Array.indexOf
Now here's how the translated code should look like:
function unique(array) {
return $.grep(array, function(el, index) {
return index === $.inArray(el, array);
});
}
(demo page)