数组去重的方法以及优化和兼容

1.使用两层循环(一般不推荐,过于麻烦)

2.使用数组的includes属性,判断是否存在该数值

function uniq(arr) {
                var myArr = [];
                for(var i=0;i<arr.length;i++) {
                    if(!myArr.includes(arr[i])) myArr.push(arr[i]);
                }
                return myArr;
            }

不兼容IE

3.使用数组的indexOf()属性

function uniq(arr){
                var myArr = [];
                for(var i =0;i<arr.length;i++) {
                    if(myArr.indexOf(arr[i])==-1)
                    {                    
                        myArr.push(arr[i]);
                    }
                }
                return myArr;
            }

不兼容IE6-8

4.使用set去重

Array.from(new Set(arr))

不兼容IE6-10

5.利用对象或者Map去重

  function uniq(arr){
        var obj={};
        var myArr=[];
        for(var i=0;i<arr.length;i++){
            var key=typeof(arr[i])+arr[i];//对象的key只有字符串形式
            if(obj[key]!==1){
                obj[key]=1;
                myArr.push(arr[i])
            }
        }
        return myArr;
    }

兼容IE

全部评论

相关推荐

12-18 19:36
已编辑
门头沟学院 Java
程序员牛肉:可以的,简历没毛病了。 虽然还是偏向同质化,不过学历不错。后续我觉得重心放到刷实习+摆脱同质化问题上
实习简历求拷打
点赞 评论 收藏
分享
10-31 21:01
武汉大学 Java
lulululula...:仅仅按我个人的经历来看,大厂其实很少特别关注微服务,一般对微服务架构,限流熔断降级的概念了解就行,简历不写也不容易被问到。现在这个势头不如站点agent应用,比如做做mcp,rag,r对话agent,记忆管理之类的,说不定可以蹭上一波热度,进公司虽然可能还是干agent的杂活,但是可以学一学组内的业务和技术了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务