合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
**前提是先将数组扁平化处理,先转成一维数组** 1.new Set()方法: ``` var arr2 = [1,2,3,1,4,5,3,4]; function unique(arr){ return [...new Set(arr)] } console.log(unique(arr2)); //[1, 2, 3, 4, 5] ``` 2.indexOf()方法: ``` function unique(arr){ let arr3 = []; //遍历数组 for(let i = 0;i < arr.length; i++){ //如果新的数组中没有找到传过来的数组中的值,就往里面push if(arr3.indexOf(arr[i]) == -1){ arr3.push(arr[i]) } } return arr3; } ``` 3.sort():先排序,再遍历比较 ``` function unique(arr){ //先排序:从小到大 arr = arr.sort(); let arr3 = []; for(let i = 0;i < arr.length; i++){ //对相邻之间的数据进行比较,如果不相等就往新的数组push if(arr[i] !== arr[i-1]){ arr3.push(arr[i]) } } return arr3; } console.log(unique(arr2)); ``` 4.filter()+indexOf:filter的第三个参数是当前数组 ``` var arr = [1, 2, 2, 3, 4, 5, 5,6,,7]; var myarr = arr.filter((item, index,self)=>self.indexOf(item)===index) console.log(myarr); //[1,2,3,4,5,6,7] ```