Answers
看了jquery unique的实现如下:
Sizzle.uniqueSort = function(results){
if ( sortOrder ) {
hasDuplicate = baseHasDuplicate;
results.sort(sortOrder);
if ( hasDuplicate ) {
for ( var i = 1; i < results.length; i++ ) {
if ( results[i] === results[i-1] ) {
results.splice(i--, 1);
}
}
}
}
return results;
};
简单的说下原理,就是先将数组排序,然后循环数组,判断当前元素与上一个是否相当。将其改为js原生函数为: