数组去重

var arr=[1,2,3,1,2,3,5,6,23,4,2,5,7,9,23,6,5,3,2,21,4,65,3,3,4,6,2,5,7,7]
方法一:i从前到后遍历,j从后到i遍历,去掉相同的j
for(var i=0;i<arr.length;i++){
            for(var j=arr.length;j>i;j--){
                if(arr[i]===arr[j]){
                    arr.splice(j,1);
                }
            }
        }
        console.log(arr);
方法二:设置一个开关,在两层循环里判断如果有相同的数值就关掉开关,没有相同的打开开关push到数组中,
var newArr=[]
    for(var i=0;i<arr.length;i++){
        var bool = false
        for(var j=0;j<i;j++){
            if(arr[i]===arr[j]){
                bool=true
                break
            }
        }
        if(!bool){
            newArr.push(i)
        }
    }
    arr=newArr
    newArr=null
    console.log(arr)
方法三:直接用indexOf判断新数组是否有这个元素,如果有不进入if,如果没有就push没有的元素
var newArr=[]
    for(var i=0;i<arr.length;i++){
        if(newArr.indexOf(arr[i])===-1){
            newArr.push(arr[i])
        }
    }
    arr=newArr
    newArr=null
    console.log(arr)
方法4:利用对象的["属性名"],来排除已有的元素,这样未有的元素就可以添加进新数组,
同样可以去重,必须得给obj[arr[i]]一个值,否则每次进入if语句obj[arr[i]]的值都是underfined
var newArr=[]
    var obj={}
    for(var i=0;i<arr.length;i++) {
        if (!obj[arr[i]]) {
            obj[arr[i]]=1
            newArr.push(arr[i])
        }
    }
    console.log(newArr,obj)
去重并统计重复的个数
 var newArr=[]
    var obj={}
    for(var i=0;i<arr.length;i++) {
        if (!obj[arr[i]]) {
            obj[arr[i]]=1
        }else{
            obj[arr[i]]++
        }
    }
    console.log(newArr,obj)
原文地址:https://www.cnblogs.com/qinghao-qin/p/10121957.html