方法一:比较内层循环变量的值.
var arr=[1, 2, 3, 1, 3, 4, 5, 5]; var resultArr=[]; for (i=0; i < arr.length; i++) { for (j=0; j < resultArr.length; j++) { if (resultArr[j]==arr[i]) { break; } } if (j==resultArr.length) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr); //1,2,3,4,5
方法二:计数法.
var arr=[1, 2, 3, 1, 3, 4, 5, 5]; var count; var resultArr=[]; for (i=0; i < arr.length; i++) { count=0; for (j=0; j < resultArr.length; j++) { if (resultArr[j]==arr[i]) { count++; break; } } if (count==0) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr); //1,2,3,4,5
方法三:flag标志法(也叫假设成立法)
var arr=[1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr=[]; //[1,2,3] var flag; for (var i=0; i < arr.length; i++) { flag=true; for (j=0; j < resultArr.length; j++) { if (resultArr[j]==arr[i]) { flag=false; break; } } if (flag) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr);//1,2,3,4,5
方法四:使用sort()方法排序后比较
var arr=[1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr=[]; arr.sort(function (a, b) { return a - b; }); //这个时候arr变成了[1, 1, 2, 2, 3, 3, 4, 5, 5] for (i=0; i < arr.length; i++) { if (arr[i] !=arr[i + 1]) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr);
方法五:使用filter()方法筛选掉重复的数组
var arr=[1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr; resultArr=arr.filter(function (item, index, self) { return self.indexOf(item)==index; }); console.log(resultArr);