首页 > 编程语言 > 详细

JavaScript数组去重

时间:2020-03-06 14:09:27      阅读:70      评论:0      收藏:0      [点我收藏+]
JavaScript中,数组去重的基本方法:
 
一、双重for循环去重
  循环遍历数组中的每一个单元,跟其之后的单元进行比较,如果相同,就删除之后的单元;
  注意:防止数组坍塌; 
        var arr = [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5];
        for(let i = 0 ; i <= arr.length-1 ; i++){
            for(let j = i+1 ; j <= arr.length-1 ; j++){
                if(arr[i] === arr[j]){
                    arr.splice( j , 1 );
                    j--;
                }
            }
        }        

 

二、数组数值排序,相邻两个单元比较

        只要一重for循环
        var arr = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5];
        arr = arr.sort(function(a,b){return a-b});
        for(let i = 0 ;  i <= arr.length-1-1 ; i++){
            if(arr[i] === arr[i+1]){
                arr.splice(i+1 , 1);
                i--;
            }
        }    

 

三、indexOf方法

  判断要写入的数值,是否已经存在于新数组中

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

  利用indexOf判断当前循环元素下标与原数组中下标是否一致,一致则添加到新数组中

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

 

四、利用对象中,不能存储相同的键名

        var arr = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5];
        const obj = {};
        arr.forEach(function(val,key){
            obj[val] = ‘随便‘;
        });
        const newArr = [];
        for(let key in obj){
            newArr.push(key); 
        }

 

五、利用SET数据类型

  将数组单元,赋值给SET数据类型
        SET 数据类型中不会存储相同的数据,自动去重
        var arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5];
        const set = new Set(arr);
        const newArr = [...set];
        // const newArr = [...new Set(arr)];

 

JavaScript数组去重

原文:https://www.cnblogs.com/younghxp/p/12426263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!