js数组去重 - Go语言中文社区

js数组去重


1、定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。

    var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; 
    var arrr = [1]; 
    for(var i=0;i<arr.length;i++){
        var flag = false; 
        for(var j=0;j<arrr.length;j++){ 
            if (arr[i] == arrr[j]) { 
                flag = true; 
                break; 
            } 
        }
        if (!flag) { 
            arrr.push(arr[i]); 
        } 
} console.log(arrr)

2、先将原数组排序,在与相邻的进行比较,如果不同则存入新数组

    // 将原数组排序组成新的数组 
    var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; 
    var arr2 = arr.sort();
    var res = [arr2[0]]; 
    for(var i=0;i<arr2.length;i++){ 
        if (arr2[i] !== res[res.length-1]) { 
            res.push(arr2[i]); 
        } 
    }
    console.log(res);

3、利用对象的属性去重(推荐)

    var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; 
    var res = []; 
    var json = {}; 
    for(var i=0;i<arr.length;i++){ 
        if (!json[arr[i]]) { 
            res.push(arr[i]); 
            json[arr[i]] = 1; 
        }
    }
    console.log(res);

4、利用下标查询

    var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; 
    var newArr = [arr[0]]; 
    for(var i=1;i<arr.length;i++){ 
        if (newArr.indexOf(arr[i]) == -1) { 
            newArr.push(arr[i]); 
        } 
    }
    console.log(newArr)

5、利用ES6方法 - set去重

    var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1];  
    function fn(arr){
        var s = new Set(arr); 
        return Array.from(s); 
    }
    console.log(fn(arr))

 

版权声明:本文来源博客园,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.cnblogs.com/wtwebskill/p/11763814.html
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-11-17 12:40:54
  • 阅读 ( 776 )
  • 分类:前端

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢