数组去重

1、Set去重

var arr = [1,2,2,4,3,4,1,3,2,7,5,6,1]

var newArr = new Set(arr); // { 0:1, 1:2, 2:4, 3:3, 4:7, 5:5, 6:6 }

2、indexOf

function fn( arr ){

  let newArr = [];

  arr.forEach( (val)=>{

    if ( newArr.indexOf(val) == -1 ){

      newArr.push( val );

    }

  } );  

  return newArr;

}
3、普通去重
var arr = [1,2,2,4,3,4,11,3,2,7,5,6,1];
for( var i=0;i<arr.length;i++ ){
  for( var j=i+1;j<arr.length;j++ ){

    if ( arr[i]==arr[j] ){

      arr.splice(j,1);

    }  

  }
}

4、键值去重

function fn( arr ){

  let arr1 = [],

  arr2 = [];

  arr.forEach( (val)=>{

    arr1[ val ] = val;

  } );

  // arr1数组会存在空的情况

  // 所以返回arr2

  arr1.forEach( (val)=>{

    if (!!val){

      arr2.push( val );

    }

  } );  

  return arr2;

}

5、sort排序后去重

function fn( arr ){

  let newArr = [];

  arr.sort( (a,b)=>{

    return a-b;

  } );

  arr.forEach( (val, index)=>{

    if ( val != arr[index+1] ){

      newArr.push(val);

    }

  } );  

  return newArr;

}

 

 

[1,2,2,4,3,4,1,3,2,7,5,6,1]
posted @ 2019-08-13 17:32  要好好生活啊  阅读(129)  评论(0编辑  收藏  举报