美文网首页
JavaScript数组去重的方法

JavaScript数组去重的方法

作者: 雨落失忆之城 | 来源:发表于2018-05-05 00:36 被阅读0次

    给数组去重的方法是有很多种的,面对这个问题,我一开始的想法是把数组元素push到另外一个空数组里面,然后循环判断。

    具体方法如下:

    var a = ['a','b','a','c'];

    function c(arr){

    var str = [];

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

         if(str.indexOf(arr[i])<0){

                str.push(arr[i]);

         }

    }

    return str;

    }

    a = c(a);

    因为indexOf()这个方法返回了字符串在数组对象(字符串也可以看做数组对象)中第一次出现的位置,也就是下标。如果不存在就返回-1。当有重复的元素的时候str.indexOf()返回的值大于或等于0就不会被push到新的数组中了。

    然而最近在网上学习的时候,学到了这样一个操作数组的方法 : filter()   我又了解了一个新的数组去重方法。

    如下:

    var b = ['abc','def','abc','ghi','def','jkl'];

    b = b.filter(function(i,ind,s){

            return s.indexOf(i)===ind;

    });

    console.log(b);

    基本原理是,filter()方法筛选数组中元素,方法中接收的回调函数支持多个参数,第一个参数代表当前元素,第二个参数代表当前下标,第三个参数代表处理数组本身。接收的函数返回true 则保留当前元素,返回false则删掉当前元素。通过这种方法就规避了循环,实现了数组的去重。

    相关文章

      网友评论

          本文标题:JavaScript数组去重的方法

          本文链接:https://www.haomeiwen.com/subject/opzjrftx.html