//排序后相邻去除法 arr=[1,2,5,1,3,7,9,5]; function unique(arr){ arr.sort(); var _arr=[arr[0]];//结果数组 for(var i=0;i<arr.length;i++){ if(arr[i]!=_arr[_arr.length-1]){ _arr.push(arr[i]); } } return _arr; } unique(arr);
//遍历数组法 if(Array.prototype.indexOf===-1){ Array.prototype.indexOf=function(value,fromi){ fromi===undefined&&(fromi=0); for(var i=fromi;i<this.length;i++){ if(this[i]=value){ return true; }else{ return -1; } } } } arr=[1,2,5,1,3,7,9,5] function unique(arr){ var _arr=[];//新建临时数组 for(var i=0;i<arr.length;i++){ if(_arr.indexOf(arr[i])==-1){//如果arr的第i已经保存进了_arr,那么跳过, //否则把当前项push到临时数组里面(没有在_arr中出现过(-1)) _arr.push(arr[i]); } } return _arr; } console.log(String(unique(arr)));
*先解决ie8的兼容问题