js数组去重

来源:互联网 发布:淘宝代购only是正品吗 编辑:程序博客网 时间:2024/05/22 01:34
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body></body><script>//数组去重//构建一个新数组,将结果放在新数组中//方法1:建构一个为false的标志,将原数组中的元素与结果数组中的元素进行循环比较,如果一发现重复,则马上标志为true,退出此次循环,如果原始数组中某个元素与结果数组中的元素一轮比较下来,标志还为false,则证明此元素不重复,则将那个元素放入结果数组中function removeDuplicates(arr) {var result = new Array();for(var i =0;i<arr.length;i++){var repeat=false;for(var j=0;j<result.length;j++){if(arr[i]==result[j]){repeat=true;break;}}if(!repeat){result.push(arr[i]);}}return result;}var Result = removeDuplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]);console.log(Result);//方法2:构建一个结果数组,现将初始数组sort排序,如果是数值相等的元素肯定会是相邻元素,将原始数组中第i个元素与结果数组中最后一个元素相比较,如果不相等则将d第i个元素push进结果数组var array2=[1, 2, 4, 4, 3, 3, 1, 5, 3,8,9,8];var result2=new Array();function removeDuplicates2(array){array.sort();var result2=new Array();for(var i=0;i<array.length;i++){if(array[i]!=result2[result2.length-1]){result2.push(array[i]);}}return result2;}var Result2=removeDuplicates2(array2);console.log(Result2);//方法3(推荐使用),创建一个结果数组,创建一个空对象,将原数组中的第i个元素与对象中的属性进行比较,如果不能在对象中访问到该属性,则将元素存入结果数组中,也将元素的内容作为对象的一个属性,赋值为1,取出原始数组一个元素,如果能在对象中访问到则说明这个元素是重复的var array3=[112,112,34,'你好',112,112,34,'你好','str','str1'];var json={};var result3=new Array();function removeDuplicates3(array){for(var i=0;i<array.length;i++){if(!json[array[i]]){json[array[i]]=1;result3.push(array[i]);}}return result3;}var Result3=removeDuplicates2(array3);console.log(Result3);</script></html>

0 0
原创粉丝点击