第一种
<script> var arr = [1,1,2,2,5,4,3,4,3,5,6,6,8,8,9,9];//模拟数组数据 for (var i=0; i<arr.length;i++) { for (var j=i+1;j<arr.length;j++) { //双重for循环嵌套遍历 if (arr[i] === arr[j]) { arr.splice(j,1); //有重复通过splice去重,会改变原数组 } } } console.log(arr) //打印去重后的新数组 [1, 2, 5, 4, 3, 6, 8, 9] </script>
第二种 for...of去重,去重巨快的一种方案
<script> var arr = [1,1,2,2,5,4,3,4,3,5,6,6,8,8,9,9];//模拟数组数据 var result = []; let obj = {}; //利用对象的不重复的特性 for (let i of arr) { if (!obj[i]) { result.push(i) obj[i] = 1; } } console.log(result) </script>
第三种 es6 提供的set方法
<script> var arr = [1,1,2,2,5,4,3,4,3,5,6,6,8,8,9,9];//模拟数组数据 var ss = new Set(arr); // 返回一个去重后的对象 console.log(Array.from(ss)); // Array.from 转换为数组 </script>