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));
  • 相关阅读:
    说说Java中的代理模式
    一个奇怪的异常
    JDBC第二次学习
    浅谈事务
    JDBC第一次学习
    Firebug & Chrome Console 控制台使用指南
    js 事件创建发布
    vue ui之 iview 事件拦截
    fetch获取json的正确姿势
    js对象通过属性路径获取属性值
  • 原文地址:https://www.cnblogs.com/garyzhijiang/p/9116948.html
Copyright © 2011-2022 走看看