js手写数组去重

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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 5,806评论 0 0
  • 讲在前面 这次选的计划是源码阅读计划,因为之前花时间x重新再过了高程和权威,觉得得看一些实在的东西来提高自己。因此...
    临水照影233阅读 418评论 0 0
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,119评论 0 2
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,407评论 0 6
  • 妈妈, 今夜月光如水 相思成冢 给您点一首《鲁冰花》 妈妈, 昔日的小孩已长大 您却已满头白发 妈妈, 岁月无情地...
    Harvest收获阅读 742评论 93 113

友情链接更多精彩内容