数组去重的方法
var arr = [1,5,9,8,7,5,42,4,5] // 方法一:利用set console.group('set去重:') function noRepeat(arr){ if(arr instanceof Array){ var result = new Set(arr) arr = Array.from(result) return arr } } var myArr =noRepeat(arr) console.log(myArr) console.groupEnd() // 方法二:利用indexOf console.group('indexOf去重:') function noRepeat1(arr){ var arr1 = [] if(arr instanceof Array){ for(var i=0; i<arr.length;i++){ if(arr1.indexOf(arr[i])==-1){ arr1.push(arr[i]); } } } return arr1; } var myArr1 = noRepeat1(arr) console.log(myArr1) console.groupEnd() // 方法三:先排序后然后再相邻比较去重 console.group('先利用sort排序,再判断相邻元素去重:') function order(value1,value2){ return value1-value2 } function noRepeat2(arr){ arr.sort(order); var arr1 = [arr[0]]; for(var i=1;i<arr.length;i++){ if(arr[i]!==arr1[arr1.length-1]){ arr1.push(arr[i]) } } return arr1 } var myArr2 = noRepeat2(arr) console.log(myArr2) console.groupEnd() console.group('1.创建一个新的数组存放结果 2.创建一个空对象') Array.prototype.unique=function(){ var res=[]; var json = {}; for(var i=0;i<this.length;i++){ if(!json[this[i]]){ res.push(this[i]); json[this[i]]=1; } } return res; } var arr = [112,112,34,'你好',112,112,34,'你好','str','str1']; console.log(arr.unique()) console.groupEnd()