zoukankan      html  css  js  c++  java
  • 数组去重

    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)
  • 相关阅读:
    一些前台技巧
    javascript中的面向对象
    vs.net 常用快捷键
    js和C#中的进制转换方法
    MFC中CDC相关图形,文本的一些使用方法(转)
    poj1505
    poj1401
    poj2533
    poj1504
    poj1384
  • 原文地址:https://www.cnblogs.com/qinghao-qin/p/10121957.html
Copyright © 2011-2022 走看看