zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    设计模式-总览
    restful
    springmvc异常统一处理(二)
    springmvc参数校验(二)
    跨语言的RPC
    更安全的RPC接口
    RPC版 “Hello World”
    用例(Use Case)
    参与者
    数据库知识基础入门
  • 原文地址:https://www.cnblogs.com/wtwebskill/p/11763814.html
Copyright © 2011-2022 走看看