1 Array.prototype.unique1 = function () {
 2   var n = []; //一个新的临时数组
 3   for (var i = 0; i < this.length; i++) //遍历当前数组
 4   {
 5     //如果当前数组的第i已经保存进了临时数组,那么跳过,
 6     //否则把当前项push到临时数组里面
 7     if (n.indexOf(this[i]) == -1) n.push(this[i]);
 8   }
 9   return n;
10 };
11
12
13 Array.prototype.unique2 = function()
14 {
15     var n = {},r=[]; //n为hash表,r为临时数组
16     for(var i = 0; i < this.length; i++) //遍历当前数组
17     {
18         if (!n[this[i]]) //如果hash表中没有当前项
19         {
20             n[this[i]] = true; //存入hash表
21             r.push(this[i]); //把当前数组的当前项push到临时数组里面
22         }
23     }
24     return r;
25 };
26
27
28 Array.prototype.unique3 = function()
29 {
30     var n = [this[0]]; //结果数组
31     for(var i = 1; i < this.length; i++) //从第二项开始遍历
32     {
33         //如果当前数组的第i项在当前数组中第一次出现的位置不是i,
34         //那么表示第i项是重复的,忽略掉。否则存入结果数组
35         if (this.indexOf(this[i]) == i) n.push(this[i]);
36     }
37     return n;
38 };
39
40
41 Array.prototype.unique4 = function()
42 {
43     this.sort();
44     var re=[this[0]];
45     for(var i = 1; i < this.length; i++)
46     {
47         if( this[i] !== re[re.length-1])
48         {
49             re.push(this[i]);
50         }
51     }
52     return re;
53 };
54
55
56 var arr = [1,2,2,2,3,3,4,5];
57 console.log(arr.unique1()); // [1, 2, 3, 4, 5]
58 console.log(arr.unique2()); // [1, 2, 3, 4, 5]
59 console.log(arr.unique3()); // [1, 2, 3, 4, 5]
60 console.log(arr.unique4()); // [1, 2, 3, 4, 5]

JS 数组去重的几个方法相关推荐

  1. 原生JS数组去重的几种方法

    有时候我们做项目的时候往往会需要把数组里面一些重复的项去掉,但是原生JS有排序,有筛选等等,但是就是没有数组去重怎么办呢? 这能怎么办,自己手动实现嘛.(以下代码直接在原型上添加的的方法,为的就是和原 ...

  2. js数组去重的4个方法

    面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项.据我所知,百度.腾讯.盛大等都在面试里出过这个题目. 这个问题看起来简单,但是其实暗藏杀机. 考的不仅仅是实现这个功能,更 ...

  3. js数组去重的三种常用方法

    第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 Array.pro ...

  4. js数组去重(9种方法),你都会了吗?

    以下共有九种数组去重的方式和详解(包含对象数组去重): 1.利用Array.from(new Set)去重: // 1.利用set去重 // Set是es6新增的数据结构,似于数组,但它的一大特性就是 ...

  5. JS 数组去重的4个方法

    JavaScript 数组去重的方法 方法一: 两层for语句遍历判断 方法二: 通过数组API indexOf()进行筛选 方法三: 通过数组API includes()进行筛选 方法四: 通过Se ...

  6. js数组 去重的5种方法

    // 数组去重 var arr = [1, 2, 2, 3, 4, 4, 5, 6, 7, 7, 4, 3, 5, 7, 11, 12, 11]; var newArr = [];//方法1最优 se ...

  7. js数组去重的几种方法

    // 数组去重1:var arr = [1, 6, 6, 6, 3, 9, 4, 9, 3, 8, 2, 2]var newArr = []console.log(arr, '原数组');var fl ...

  8. js数组去重的四种方法

    四种算法来实现这个目的: Array.prototype.unique1 = function () {var n = []; //一个新的临时数组for (var i = 0; i < thi ...

  9. js 数组去重的几种方法

    1. new Set 的两种方法 let arr = [1, 0, 0, 2, 9, 8, 3, 1];function unique(arr) {return Array.from(new Set( ...

  10. JS — 数组去重(4种方法)

    第一种:双重循环 var strCode='zxcvbnmasdfghjklopiuytrewqAWEDRFTGYHUJIK'; var str=''; for(var i=0;i<4;i++) ...

最新文章

  1. 怎样快速学习html5,如何快速学习HTML5?带你了解HTML5学什么?
  2. leetcode算法题--二分查找
  3. 【解决方案】win10连接wifi输入密码之后用户就消失了
  4. ubuntu opencv c++ 读取摄像头
  5. mysql中建立索引的原则_在SQL数据库中设定索引的原则是什么?(注意是设定不是创建)...
  6. spark基准测试-BigDataBenchs
  7. 干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
  8. 前端学习(2664):vue3.0的todolist控制完成和未完成
  9. python文本编辑器报错_notepad++编辑器中运行python程序时需要注意的编码格式
  10. openjudge #输出一个整数序列中与指定数字相同的数的个数。
  11. 直播预告丨 Oracle 12C~19C统计信息的最佳实践
  12. PHP学习笔记(八)
  13. STP实验(指定特定交换机为根桥)
  14. xshell安卓版下载_xshell5手机安卓版下载|Xshell5最新版下载_v5.0.1199_9ht安卓下载
  15. 性能测试20--Analysis -- 内存与硬盘
  16. html中的文字透明背景图片,利用css实现背景透明和文字不透明效果汇总
  17. 婴幼儿体重在线计算机,宝宝测量体重计算器
  18. 2020国内十大优秀炒外汇平台最新排名
  19. IC芯片制造过程简介
  20. Zeus源码解读之定时任务执行与手动执行任务的过程分析

热门文章

  1. leetcode刷题:相交链表
  2. go语言defer的作用
  3. 8 一点就消失_农村即将消失的15个“老物件”,件件充满回忆,全认识说明你老了...
  4. php怎么调用dll例子,php调用dll的实例操作动画与代码分享_PHP教程
  5. SpringSecurity AuthenticationManagerProviderManager
  6. Pandas to_timedelta
  7. Spark RDD Cache Checkpoint
  8. C++ 拷贝构造函数
  9. 实战Veeam Backup Replication 9.5 Upgrade to Veeam Backup Replication 10
  10. Kubernetes入门培训(内含PPT)-(转)