JS删除数组中的重复项

一维数组

  1. 将当前的数组进行排序,这样重复的元素位置相邻

  2. 循环判断是否有重复元素,有则删除

     function hasRepeat(ary)
    {
        var result = ary.sort();
        for(var i=0; i<result.length-1; i++) {
           if (result[i] == result[i+1]){
            result.splice(i,1);
            i--;
          }
      }
      return result;
    

    }

二维数组

  1. 建立hash表, 表中第一次出现的哈希值都为false,若后面的数据有重复项则为true

  2. 所以通过循环将首次出现的数据都添加到一个新数组中,最终返回这个新数组

    function Distict(arr)
    {
        var hash = {};  
        var result = [];  
        for(var i=0; i < arr.length; i++) {  
            if(!hash[arr[i]]){  
               result.push(arr[i]);  
               hash[arr[i]] = true;  
            }  
        }
        return result; 
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,093评论 1 10
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,827评论 2 17
  • 如何控制alert中的换行?\n alert(“p\np”); 请编写一个JavaScript函数 parseQu...
    heyunqiang99阅读 1,101评论 0 6
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,189评论 0 6