博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript中的数组去重
阅读量:6974 次
发布时间:2019-06-27

本文共 1391 字,大约阅读时间需要 4 分钟。

1、方法一:双层循环,外层循环元素,内层循环做比较,若相同则跳过,不同则加入结果集中,获取没重复的最右侧的值放入数组中

Array.prototype.distinct = function(){  var arr = this;  var result = [];  var len = arr.length;  for(var i=0;i

 2、方法二:利用splice直接在原数组中删除

Array.prototype.distinct = function(){    var arr = this,    len = arr.length;    for(var i=0;i

 3、方法三:利用对象属性不能重复的特点去重

Array.prototype.distinct = function(){    var arr = this;    var len = arr.length;    var obj = {}    var result = []    for(var i =0 ;i

 4、方法四:利用数组进行排序

Array.prototype.distinct = function(){    var arr = this;    var len = arr.length;    arr.sort(function(a,b){        return a-b;    })    function loop(index){        if(index>=1){            if(arr[index] === arr[index-1]){                arr.splice(index,1)            }            loop(index-1)        }    }    loop(len-1)    return arr;}

 5、方法五:遍历数组,利用indexOf判断

Array.prototype.distinct = function(){    var arr = this;    var len = arr.length;    var result = [];    arr.forEach(function(currentVal,index,arr){      //arr.map(function(currentVal,index,arr){          var loop = result.indexOf(currentVal)        if(loop === -1){            result.push(currentVal)        }    })    return result}

6、方法六:es6的set数据结构,set成员都是唯一的,Array.form可以将set类型转化为数组

Array.prototype.distinct = function(){    return Array.from(new Set(this)) //或者使用es6的三点运算符转化为数组 [...new Set(this)]}

 

转载于:https://www.cnblogs.com/lhyhappy365/p/9207945.html

你可能感兴趣的文章
算法-最大连续子序列和
查看>>
NodeJS之Mac初体验
查看>>
勾股数
查看>>
zoj 1597 Circular Area
查看>>
v-solt插槽
查看>>
OCM_第六天课程:Section3 —》数据库可用性
查看>>
ORA-00257 archiver error. 错误的处理方法
查看>>
开发Servlet的方法(2)
查看>>
Apache mod_wsgi部署Django项目
查看>>
玲珑杯#20 C 漆黑的太阳——莫队
查看>>
MySQL数据库建立外键失败的原因总结
查看>>
网络资源收集工具编码规范
查看>>
ZOJ3778 Talented Chef(贪心)
查看>>
iOS上的反射用法
查看>>
CF1072A Palindromic Twist 思维
查看>>
Leetcode c语言-Permutations
查看>>
《javascript设计模式》阅读笔记
查看>>
JQuery基础总结上
查看>>
postgresql 备份
查看>>
Cocos2d-x调用Java 代码
查看>>