方法1:
思想:
1.定义新的空数组,存储去重后的元素
2.遍历原数组
3.判断新数组里有没有原数组当前判断的元素:indexOf、includes,如果没有,存储到新数组中
<script>
var arr=[9,2,5,2,8,2,5]
//第一种方式
var arr1=[]
for(var i=0;i<arr.length;i++){
//if(arr1.indexOf(arr[i])==-1){ //数组中没有arr[i],将arr[i]加到arr1里面
// arr1.push(arr[i])
//}
if(arr1.includes(arr[i])==false){
arr1[i]=arr[i]
arr1.push(arr[i])
}
}
console.log(arr1)
</script>
方法2:
利用双重for循环+splice实现
1.外层循环遍历数组所有元素
2.内层循环依次判断后面元素是否与外层循环元素相同,如果相同,截取掉
<script>
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
arr.splice(j,1)
j-- //使下标基于当前比较。而不是在后一个开始比较,依次排除如3个及以上相同数字连着排的特殊情况
}
}
}
console.log(arr)
</script>
方法3:
用函数+forEach方法实现
<script>
function test1(){
var arr=[9,2,5,2,8,2,5]
var newArr=[]
arr.forEach(function(item){
if(newArr.indexOf(item) == -1){
newArr.push(item)
}
})
console.log(newArr);
}
test1()
</script>
输出都是: