数组去重(包括数组对象去重)

第一种方法:

 1         var arr = [1, 4, 5, 7, 3, 2, 1, 5, 6, 7, 1, 3, 5, 7, 2, 4, 6, 7];
 2         var arr1=[];
 3         for(var i=0;i<arr.length;i++){
 4             var item=arr[i];
 5             var flag=true;
 6             for(var j=0;j<arr1.length;j++){
 7                 if(arr1[j]===item){
 8                     flag=false;
 9                     break;
10                 }
11             }
12             if(flag) arr1.push(item);
13         }
14         console.log(arr1);

第二种方法:

 1     for(var i=0;i<arr.length;i++){
 2         var item=arr[i];
 3         for(var j=i+1;j<arr.length;j++){
 4             if(item===arr[j]){
 5                 delete arr[j];
 6             }
 7         }
 8     }
 9     var arr1=[];
10     for(var prop in arr){
11         arr1.push(arr[prop]);
12     }
13     console.log(arr1);

第三种方法:

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

 第四种:

let arr = [1,1,2,2,3,3,4,4];
let newArr = [...new Set(arr)];

 

第五种:数组对象去重

    const noRepeta = (arr, property) => {
      const map = new Map()
      for (const item of arr) {
        if (!map.has(item[property])) map.set(item[property], item)
      }
      return [...map.values()]
    }
    let newArr = noRepeta(arr, 'name') // 根据 name 属性去重 arr

 

posted @ 2019-07-26 23:43  吴小明-  阅读(238)  评论(0编辑  收藏  举报