js数组去重

  • 时间:2018-06-06 01:50 作者:小小眼睛看世界 来源:小小眼睛看世界 阅读:214
  • 扫一扫,手机访问
摘要:在前台面试中,经常会被问到这样的一个问题;就是数组去重的问题,就是去掉重复内容实现的方法有很多下面我主要详情三种方法:方法一:是我们平时思路一般想到的;也是最其本的方法,就是两次for循坏,进行逐个比较//最基本的方法,两次for循坏,进行逐个比较Array.prototype.unique1 =

在前台面试中,经常会被问到这样的一个问题;就是数组去重的问题,就是去掉重复内容

实现的方法有很多

下面我主要详情三种方法:

方法一:

是我们平时思路一般想到的;也是最其本的方法,就是两次for循坏,进行逐个比较

//最基本的方法,两次for循坏,进行逐个比较Array.prototype.unique1 = function () { //返回的结果数组;进来就取出第一个元素 var result = [this[0]]; for(var i = 1; i < this.length; i++){ var flag = true; for(var j = 0; j < result.length; j++){ if(this[i] == result[j]){flag = false; break;}} //假如两个数组内容不相等,就把其加到返回的数组中 if(flag){result.push(this[i]);}} return result;};var test = [23,'sd',23,2,45,45,23,'sd','打击',23];console.log(test.unique1());

方法二:

利使用indexOf()方法进行判断,一次for循坏就可以取出,比第一种方法效率高

//第二种方法,利使用indexOf()方法判断Array.prototype.unique2 =function () { //定义返回的临时数组 var result = []; for(var i = 0; i < this.length; i++){ if(result.indexOf(this[i]) == -1){ //遍历数组,假如返回的结果数组找不到,就把其加进去 result.push(this[i]);}} return result;};var test = [23,'sd',23,2,45,45,23,'sd','打击',23];console.log(test.unique2());

方法三:

利使用对象的特点进行判断取出,效率最佳

//第三种方法,利使用对象取职判断,与第二种方法思想类似(效率比较高)Array.prototype.unique3 = function () { //定义临时返回数组 var result = []; //定义临时存值对象 var obj = {}; for(var i = 0; i < this.length; i++){ //遍历数组,判断对象中能否存在相同的数组内容,以key值形式来判断 if(!obj[this[i]]){ //假如不存在,push到返回的数组中 result.push(this[i]); //同时把其当作key值的形式存入对象,其value值都为1 obj[this[i]] = 1;}} return result;};var test = [23,'sd',23,2,45,45,23,'sd','打击',23];console.log(test.unique3());
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】WEB前端学习:JS实现中文简体繁体切换(2019-08-22 12:38)
【系统环境|服务器应用】前台开发入门到实战:HTML5语义化元素你真的用的正确吗?(2019-08-22 04:16)
【系统环境|服务器应用】Vue仿微信app页面跳转动画(2019-08-22 04:16)
【系统环境|服务器应用】webstorm使用快捷键快速修正单个文件的style(2019-08-22 04:16)
【系统环境|服务器应用】程序员从学生到阿里经历的5次蜕变:海阔凭鱼跃,天高任鸟飞(2019-08-22 04:16)
【系统环境|服务器应用】var、let、const的区别(2019-08-22 04:16)
【系统环境|服务器应用】mini-ui加载框Indicator 被遮挡问题(2019-08-22 04:15)
【系统环境|服务器应用】【对讲机的那点事】玩对讲机,对于对讲机的亚音你理解吗?(2019-08-22 04:15)
【系统环境|服务器应用】前台中高级面试,内功心法(上)(2019-08-22 04:15)
【系统环境|服务器应用】17、改进轮播图之功能封装(2019-08-22 04:15)
手机二维码手机访问领取大礼包
返回顶部