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)
  • 相关阅读:
    装饰器模式
    java构建树形节点优化
    excel操作
    回调函数
    网络编程
    小练习-接口发布文章 验证未登录
    requests模块
    try异常处理
    内置函数
    接口-用户登录,返回session
  • 原文地址:https://www.cnblogs.com/qinghao-qin/p/10121957.html
Copyright © 2011-2022 走看看