×

JavaScript开发TIPS:数组去重

作者:Web前端之家2021.05.05来源:Web前端之家浏览:315评论:0
关键词:js

JavaScript开发TIPS:数组去重。

方法1:

Array.prototype.unique1 = function(){
 console.time("数组去重法1");   //记录开始执行的时间
 var arr = [];    //创建一个临时数组
 var obj = {};   //创建一个空对象
 for(var i = 0; i < this.length; i++){   //遍历当前要去重的数组
  if(!obj[this[i]]){   //判断obj对象中是否存有当前项,没有则执行
   arr.push(this[i]);   //将当前项push到临时数组中
   obj[this[i]] = 1;   //将当前项存入obj对象
  }
 }
 console.timeEnd("数组去重法1");   //记录结束执行的时间
 return arr;
}

方法2:

Array.prototype.unique2 = function(){
 console.time("数组去重法2"); //记录开始执行的时间
 var arr = [];  //创建一个临时数组
 for(var i = 0; i < this.length; i++){  //遍历当前要去重的数组
  if(arr.indexOf(this[i]) == -1){  //判断临时数组中是否存有当前项,没有则执行
   arr.push(this[i]); //将当前项push到临时数组中
  }
 }
 console.timeEnd("数组去重法2"); //记录结束执行的时间
 return arr;
}

方法3:

Array.prototype.unique3 = function(){
 console.time("数组去重法3"); //记录开始执行的时间
 var arr = [this[0]]; //创建一个临时数组,并将要去重数组的第一项存入临时数组
 for(var i = 1; i < this.length; i++) { //从要去重数组第二项开始遍历
  if (this.indexOf(this[i]) == i){ //判断临时数组中是否存有当前项,没有则执行
   arr.push(this[i]); //将当前项push到临时数组中
  }
 }
 console.timeEnd("数组去重法3"); //记录结束执行的时间
 return arr;
}

方法4:

var arr1 = []; //创建一个要去重的数组
for(var i = 0; i < 200000; i++){ //遍历200000个数据
 arr1.push(parseInt(Math.random() * 10) + 1); //将所有数据返回为随机数(1-10之间)的数, 并push到要去重的数组中
}

console.log(arr1.unique1()); //打印数组去重法1的执行时间
console.log(arr1.unique2()); //打印数组去重法2的执行时间
console.log(arr1.unique3()); //打印数组去重法3的执行时间

温馨提示:本文作者系Web前端之家 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/js20210505a1.html

网友评论文明上网理性发言 已有0人参与

发表评论:

最新留言

  • qianduan

    这个跟H5做的很像,看上去用react实现起来要简单些。...

  • qianduan

    YYDS的文章,收藏了。...

  • 访客

    红红火火恍恍惚惚...

  • 跨境电商运营

    谢谢站长的文章已经解决问题了...

  • 跨境电商运营

    非常不错的文章下次还会再来!...

  • Web前端之家

    可以的,有时间会发些关于SEO相关的文章~...

  • s4f

    SEO很难啊,小编多发点类似文章吧!...

  • Web前端之家

    应该没什么问题吧,等待官宣,毕竟还没正式公开这个版本。...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2021 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.6.7 Valyria