首页 > 网络技术 > 正文

js数组去重的方法,jquery有没有数组去重的方法

2020-04-30 09:42:38  来源:http://www.yummyboobs.net  编辑:admin

写一个方法,用forEach数组对象去重

方法一:去重复数据<script>Array.prototype.distinct=function(){var a=[],b=[];for(var prop in this){var d = this[prop];if (d===a[prop]) continue; //防止循环到e69da5e887aae799bee5baa631333365643630prototypeif (b[d]!=1){a.push(d);b[d]=1;}}return a;}var x=['a','b','c','d','b','a','e','a','b','c','d','b','a','e'];document.write('原始数组:'+x);document.write("<br />");document.write('去重复后:'+x.distinct());</script>方法二:取重复数据<script type="text/javascript">Array.prototype.distinct=function(){var a=[],b=[],c=[],d=[];for(var prop in this){var d = this[prop];if (d===a[prop]){continue;}//防止循环到prototypeif (b[d]!=1){a.push(d);b[d]=1;}else {c.push(d);d[d]=1;}}//return a;return c.distinct1();}Array.prototype.distinct1=function(){var a=[],b=[];for(var prop in this){var d = this[prop];if (d===a[prop]) continue; //防止循环到prototypeif (b[d]!=1){a.push(d);b[d]=1;}}return a;}

有序数组去重的几种算法

这个问题的意思是,如果假设一个数组中存在重复e799bee5baa6e997aee7ad94e78988e69d8331333365653330的数据项,那么就中保留重复数据项中的一个。也就是说最终输出的结果数组中不容许存在重复数据项,所以因为这里涉及到重复数据项的问题,所以立马想到了集合(Set)这个数据结构,因为它是不容序存在重复数据项的数据结构,思路1.也就是将数组中的所有元素插入到一个Set中,利用Set的自动剔除重复数据项的功能,将导致所有重复数据项没有办法插入成功,也就是add方法返回false,然后调用toArray方法,返回这个集合所对应的数组。那么这个数组就是一个没有重复数据项的数组,利用这个方法,通过比较结果数组和源数组之间的大小,查看源数组中到底是否存在重复数据项。思路2.除了利用Set这个数据结构不容序存在重复数据项的功能之外,还有一种很容易想到的方法,也就是对整个数组进行排序,然后遍历排序之后的数组,将重复数据项,清除掉。思路1的实现:public static int[] noDup(int[] array) {Set<Integer> set = newHashSet<Integer>();for (int i :array)set.add(i);Integer[]integers = (Integer[]) set.toArray();int[] result= new int[integers.length];for (int i =0; i < integers.length; i++)result[i] =integers[i];returnresult;}思路2的实现:使用快速排序等算法对数组进行排序,这个排序过程不在介绍。假设下面这个算法的输入是一个几经排好序的数组。for (int i = 0; i < array.length - 1; i++) {if (array[i]== array[i + 1]) {array[i] =-1;}}通过上面这段代码就能够实现把数组中所有的重复数据项只保留一个,其它的置为-1或者根据实际情况置成其它值。然后遍历数据,删除所有位-1的数据项,并且将数组中包含的记录个数不断减少即可。

JavaScript数组去重的几种方法效率测试

js jquery去除数抄组中袭的重复元素百第一度种:$.unique()第二种问:for(var i = 0,len = totalArray_line.length;i < len;i++){!答RegExp(totalArray_line[i],"g").test(resultArray_line.join(",")) && (resultArray_line.push(totalArray_line[i])); }

JS数组去重的几种方法

function clear(arr) {// 1 如何获取数组中每一个元素出现的次数var o = {}; // 1.1 记录数组中元素出现的次数for (var i = 0; i < arr.length; i++) {var item = arr[i]; // 数组中的每一个元素// o[item] = 1;// 1.2 判断o对象是否有当前遍历7a64e58685e5aeb931333365653333到的属性if (o[item]) {// 如果o[item] 存在,说明次数不为1o[item]++;} else {// 如果o[item] 不存在,说明是第一次出现o[item] = 1;}}// console.log(o);// 2 生成一个新的数组,存储不重复的元素var newArray = [];// 2.1 遍历对象o中的所有属性for (var key in o) {// 2.2 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中if (o[key] === 1) {newArray.push(key);} else {// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次// 判断当前的newArray数组中是否已经有该元素 if (newArray.indexOf(key) === -1) {newArray.push(key);}}}return newArray;} var array = ['c', 'a', 'z', 'a', 'x', 'a'];var newArray = clear(array);console.log(newArray);

js数组去重以及如何判断出字符串出现次数最多的字符

新建一新数组,遍历传入数组,值不在新数组就push进该zhidao新数组中functionuniq(array){vartemp=[];for(vari=0;i<array.length;i++){if(temp.indexOf(array[i])==-1){temp.push(array[i]);}}returntemp;}