javascript数组去重高效处理程序


数组去重复是一个常见的需求,
虽然网上有很多答案,
但是我想大家给我推荐一些实用的大家用过的而且性能特好的那种

JavaScript 数组 算法

ZH.C. 12 years, 2 months ago

看了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原生函数为:

   
  function unique (arr){
  
arr = arr.sort();
for (var i=1; i<arr.length;i++) {
if (arr[i] === arr[i-1] ) {
arr.splice(i–-,1);
}
}
return arr;
}

xyaa01 answered 12 years, 2 months ago

Your Answer