数组去重的几种方式

数组去重是面试中经常问到的问题,也是一个合格的前端必须掌握的知识。我总结了这三种常用的方法。

var arr=[1,3,4,5,5,4,3,6];

1.使用ES5中的indexOf进行去重:

function arr1(){

      var n=[];

        for(var i=0;i<arr.length;i++)

            if(n.indexOf(arr[i])==-1){

                n.push(arr[i]);

            }

        }

        return n;

    }

//先定义一个空数组,然后遍历数组,使用indexOf检查是否含有重复元素,如果没有则插入到n中。使用此类方法应考虑ES5的兼容性问题。


2.先排序后然后再相邻比较去重

function fun(){

        arr.sort();

        var arr1=[arr[0]];

        for(var i=1;i<arr.length;i++){

            if(arr[i]!==arr1[arr1.length-1]){

                re.push(arr[i]);

            }

        }

        return arr1;

    }

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

3.最基本的去重方法:

function fun(arr){

  var arr1 = [arr[0]];

  for(var i=1;i<arr.length;i++)

    var repeat = false;

    for(var j=0;j<arr1.length;j++)

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

        repeat = true;

        break;

      }

    }

    if(!repeat){

      arr1.push(arr[i]);

    }

  }

  return arr1;

}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容