一维数组
将当前的数组进行排序,这样重复的元素位置相邻
-
循环判断是否有重复元素,有则删除
function hasRepeat(ary) { var result = ary.sort(); for(var i=0; i<result.length-1; i++) { if (result[i] == result[i+1]){ result.splice(i,1); i--; } } return result;
}
二维数组
建立hash表, 表中第一次出现的哈希值都为false,若后面的数据有重复项则为true
-
所以通过循环将首次出现的数据都添加到一个新数组中,最终返回这个新数组
function Distict(arr) { var hash = {}; var result = []; for(var i=0; i < arr.length; i++) { if(!hash[arr[i]]){ result.push(arr[i]); hash[arr[i]] = true; } } return result; }