• 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));
  • 相关阅读:
    深入浅出Vue.js(四) 整体流程
    深入浅出Vue.js(三) 模板编译
    实现strStr()--indexOf()方法
    Z字形变换
    最长回文子串
    删除数组中不符合条件的值
    整数反转
    寻找两个正序数组的中位数
    gorm 关系一对一,一对多,多对多查询
    gorm 如何对字段进行comment注释?
  • 原文地址:https://www.cnblogs.com/garyzhijiang/p/9116948.html
Copyright © 2020-2023  润新知