<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var arr = [‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘1‘, ‘2‘, ‘2‘, ‘2‘, ‘2‘, ‘3‘, ‘3‘, ‘3‘, ‘3‘]; var arr1 = []; //数组的去重 //思路:使用每一个和数组的每一个去比较,如果有不相同的就推入空数组 for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr.length; j++) { if (arr[i] != arr[j]) { if (arr1.indexOf(arr[i]) == -1) { arr1.push(arr[i]); } } } } console.log(arr1); for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { //例如第一个,如果和第一个相比,那就把自己删除了,所以就错了,所以不能和自己比较 //如果这个元素重复,就把这个数删除,删除之后,i的值就变了,但是在这一轮循环没有结束的时候i的值在这里是不会变的 if (arr[i] == arr[j]) { //分析:一些不重复的元素被删除,为什么,就是i的值有问题 //如果按照正常不会有问题, arr.splice(i, 1); i--; j--; } } } console.log(arr); </script> </body> </html>