美文网首页让前端飞
js手写数组去重

js手写数组去重

作者: tcz520 | 来源:发表于2019-02-13 15:12 被阅读4次

    javascript数组中若存在重复元素,此时我们需要将重复的元素去除,下面我讲介绍一下几种方法进行数组元素去重

    一.  临时数组法

    新建一新数组,遍历要去重的数组,将值一一插入新数组中,若已存在此元素,则跳过。

    function uniqArray(array){

        var temp = [];  // 一个新的临时数组

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

            if(temp.indexOf(array[i]) == -1){

                temp.push(array[i]);

            }

        }

        return temp;

    }

    二.  数组下标法

    如果当前数组的第i项在当前数组中第一次出现的位置不是i, 那么表示第i项是重复的,忽略掉。否则存入结果数组。此方法还是得调用“indexOf”性能跟方法1差不多。

    function uniqArray(array){

        var temp = [];

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

            // 如果当前数组的第i项在当前数组中第一次出现的位置是i,才存入数组;否则代表是重复的

            if(array.indexOf(array[i]) == i){

                temp.push(array[i])

            }

        }

        return temp;

    }

    三.  排序后相邻去除法

    给传入数组排序,排序后相同值相邻,然后遍历时,新数组只加入不与前一值重复的值。会打乱原来数组的顺序。

    function uniqArray(array){

        array.sort();

        var temp=[array[0]];

        for(vari = 1; i < array.length; i++){

            if( array[i] !== temp[temp.length-1]){

                temp.push(array[i]);

            }

        }

        return temp;

    }

    相关文章

      网友评论

        本文标题:js手写数组去重

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