首页 > 代码库 > javaScript 去除数组中的重复值
javaScript 去除数组中的重复值
javaScript 去除数组中的重复值
//js 数组去除重复的方法:ps:forEach是ECMA5中Array新方法中最基本的一个,就是遍历 Array.prototype.unique=function (){ var result=[]; this.forEach(function (val){ if (result.indexOf(val)<0){ result.push(val); } }) return result; } //利用hash表去除重负的方法;这是一种利用空间换区时间的方法; Array.prototype.uniqueFn=function (){ var result=[]; var hash={}; this.forEach(function (val){ if (!hash[val]){ hash[v]=true; //下次再遇到这个值,也无法进入循环体; result.push(v); } }) result; } //因为JavaScript 是弱类型的脚本语言,所有数组中没有数据类型的判断; //对于下面的数组可能会有误; // 1,2,’1’,’2’,3],去重结果为[1,2,3],原因在于对象对属性索引时会进行强制类型转换,arr[‘1’]和arr[1]得到的都是arr[1]的值,因此需做一些改变 // arr[x] 会自动的将我们的x转成字符串类型的呀; Array.prototype.unique=function (){ var result=[]; var hash={}; this.forEach(function (val){ var type=typeof(val); hash[val] || (hash[val]=new Array()); if(hash[val].indexOf(type)<0){ //对应的可以下是否又该类型的值; hash[val].push(type); //存值对应的数据类型; result.push(val); //存值 } }) }
还有一种方法,有点绕;不过还挺不错滴呀;
先排序后去重
Array.prototype.unique=function(){ var result=[this[0]]; //取出头一个数据; this.sort(); //排序后,有重复的数据会拍再一起 this.forEach(function (val){ val!=result[result.length-1] && result.push(val); }) }
javaScript 去除数组中的重复值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。