var arr1 = [10, 8, 5, 6, 96, 54, 52, 10, 8, 5, 6, 5];
1.遍历数组
function DeDuplication(arr) { var newArr = []; for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { i++; j = i; } } newArr.push(arr[i]); } return newArr; } console.log(DeDuplication(arr));2.利用对象属性不能重复的性质
function DeDuplication(arr) { var obj = {}; var newarr = []; for (var i = 0; i < arr.length; i++) { // 将arr中的每一项值作为obj的属性名,属性值随便 obj[arr[i]] = "111"; } for (key in obj) { newarr.push(Number(key)); } return Array.from(newarr); } console.log( DeDuplication(arr1)); 3. 利用indexOf indexOf()方法是获取指定元素的索引,(相同元素的第一个元素,从前往后的索引,如果有该元素,返回索引值,否则返回-1) function DeDuplication(arr) { var newarr = []; for (var j = 0; j < arr.length; j++) { // 判断newarr中有没有arr[j]这个元素,如果是-1,证明没有,所以需要向newarr中添加arr[j],如果有,则不等于-1,if里面的语句则不执行 //这句判断换成 if(newarr.lastIndexOf(arr[j]==-1))也可以 if (newarr.indexOf(arr[j]) == -1) { newarr.push(arr[j]) } } return newarr; } console.log(DeDuplication(arr1)); 4. Set里面的元素不能重复 function DeDuplication(arr) { return Array.from(new Set(arr)); // 或者可以用es6语法这样写,得到的结果相同 return [...new Set(arr)] } console.log(DeDuplication(arr1));