var arr = [1,2,3,3,1]; var flag; //用于小循环中判断是否相同 var newArr = []; newArr[0] = arr[0]; //循环的思路: 把arr里面的数据一个一个拿出来和newArr中的值相比,如果不相同则将arr中的值放入newArr中,如果有一个重复,说明已经存在了,则不放入新数组newArr中. for(var i = 1; i < arr.length; i++){ var len = newArr.length; flag = false; //每一次大循环执行,都要将flag初始化为false. //小循环是为了让arr里面的的某一个数据和newArr里面的所有数据比较 for(var j = 0; j < len; j++){ if(newArr[j]===arr[i]){ //如果能进行到此处,说明arr中与newArr中有相同的,有重复. flag = true; break; //跳出小循环 } } if(!flag){ newArr[len]=arr[i]; // 此处 len = newArr.length 保证每次循环进来的都是天价到了下一个 } } console.log(newArr); console.log(len);