这个函数的参数array是jquery对象数组,对于基本数据类型的数组没有去重的功能。
对于基本数据类型的去重,可以使用对unique修改后的函数:
(function($) {
$.extend($, {
arrunique : function(array) {
var ret = [], done = {};
try {
for (var i = 0, length = array.length; i < length; i++) {
var tmp = array[i]; // jQuery native code : var id = jQuery.data(array[i]);
if (!done[tmp]) {
done[tmp] = true;
ret.push(tmp);
}
}
} catch (e) {
ret = array;
}
return ret;
}
});
})(jQuery);
如注释所说,该函数被用来unqiue基本数据类型,对于object对象是被判断为相同的,即{},new function()这种对象只有第一个被分析的对象会被保留。以后的版本会做对这些对象
的判断。