zoukankan      html  css  js  c++  java
  • js数组去重的几种方法

    总结几种js数组去重的方法:

    第一种:创建一个新数组res,遍历原数组arr,

    如果遍历的arr数组元素在新数组res数组中不存在,就吧这个遍历出来的元素添加到新数组res中,否则跳出内层循环,不进行res数组元素添加

    function quchongArray(arr){
                let res=[];
                for(var i=0;i<arr.length;i++){
                    let flag = true;
                    for(var j=0;j<res.length;j++){
                        if(arr[i] ===res[j]){
                            flag =false;
                            break;
                        }
    
                    }
                    if(flag){
                        res.push(arr[i]);
                    }
                }
    
                return res;
            }   
            let arr =[1,2,3,4,3,2,6,2,12,31,1,2,3];
            console.log(quchongArray(arr));

    第二种:先进行数组排序,然后定一个新的数组,遍历排序后的数组,如果排序后的数组元素不等于新数组的最后一个元素,则添加。

       function quchongArray(arr) {
    
                function sortNumber(a, b) {
                    return a - b;
                }
                let newArr = arr.sort(sortNumber);
                let res = []
                for(let i=0;i<newArr.length;i++){
                    if(newArr[i]!=res[res.length-1]){
                        res.push(newArr[i]);
                    }
                }
                return res;
            }
            let arr = [1, 2, 3, 4, 3, 2, 6, 22, 12, 31, 1, 2, 3];
            console.log(quchongArray(arr));

    第三种:利用对象的特性进行排序。遍历数组,如果该数组元素不是对象的属性,就添加到新数组中

     function quchongArray(arr){
            let obj = {};
            let res=[];
            for(let i=0;i<arr.length;i++){
                if(!obj[arr[i]]){
                    res.push(arr[i]);
                    obj[arr[i]]=1;
                }
            }
            return res;
        }
        let arr = [1,2,3,4,3,2,1,5,2,3,6];
        console.log(quchongArray(arr));

    第四种:通过 filter筛选出,去重之后的数组。如果indexOf方法在该元素索引之后在在查不到该元素的位置。表示该元素不存在,符合要求

       function quchongArray(arr){
            return arr.filter(function(item,index,array){
                return array.indexOf(item,index+1) === -1
            })
        }
        let arr = [1,2,3,4,3,2,1,5,2,3,6];
        console.log(quchongArray(arr));

    第五种:通过es6,Set集合不能包含重复元素的特性来进行去重处理,最后将set对象转换为数组

    function quchongArray(arr){
            return Array.from(new Set(arr));
        }
        let arr = [1,2,3,4,3,2,1,5,2,3,6,2,1,7];
        console.log(quchongArray(arr));
  • 相关阅读:
    Django Rest Framework(版本、解析器、序列化、数据验证)
    Django Rest Framework(认证、权限、限制访问频率)
    Django rest_framework 认证源码流程
    RESTful API
    微信网页第三方登录原理
    web实现QQ第三方登录 开放平台-web实现QQ第三方登录
    H5版如何在微信外(非微信浏览器)进行微信支付技术方案
    支付宝手机网站接入2-支付结果异步通知
    支付宝手机网站接入1
    Npoi导入导出Excel操作
  • 原文地址:https://www.cnblogs.com/garyzhijiang/p/9116948.html
Copyright © 2011-2022 走看看