js数组去重

来源:互联网 发布:sublime text3运行php 编辑:程序博客网 时间:2024/05/01 08:34


//方法一: 用 indexof判断数组中是否存在重复项;//用到数组的indexOf()方法,此方法主要用来查找元素在数组中第一次出现的位置。比较浪费资源和时间。//可识别undefined,nullfunction unique1(arr){var uarr=[];for(var i=0;i<arr.length;i++){if(uarr.indexOf(arr[i])==-1){uarr.push(arr[i])}}return uarr;}//方法二: 将数组值存入hash表去重//可识别undefined,nullfunction unique2(arr){var uarr=[];var map={}for(var i=0;i<arr.length;i++){if(!map[arr[i]]){uarr.push(arr[i]);map[arr[i]]=true;}}return uarr;}//方法三 :排序后去重//缺点:数组项顺序被改变了function unique3(arr){      //将数组进行排序      arr.sort();      //定义结果数组      var newarr=[];    newarr[0]=arr[0];    for(var i = 1; i < arr.length; i++){    //从数组第二项开始循环遍历数组          //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组          if(arr[i] !== newarr[newarr.length - 1]){          newarr.push(arr[i]);          }                  }      return newarr;        }  function test(){var arr=["dfd2","dfd",4,undefined,34,undefined,2,null,null,4,"dfd","df"];var newarr=unique3(arr);console.log("oldarr",arr);console.log("newarr",newarr);}test();

部分代码参考:http://blog.csdn.net/zhihua_w/article/details/52184289

http://www.jb51.net/article/54176.htm

0 0
原创粉丝点击