js数组去重

来源:互联网 发布:linux 中telnet命令 编辑:程序博客网 时间:2024/06/06 04:03

方法一:创建一个新的对象,循环数组,把数组元素当作key,数组元素的数据类型当作value,循环过程中判断,如果没有key就把数push到新数组中,如果key相同,比较数据类型,如果数据类型不一样,更新一下value,同时push到新数组.

function uniq(arr){ var obj = {},tmp = [],type,value; for(var i=0;i<arr.length;i++){          value = arr[i];          type = typeof (value);          if(!obj[value]){               obj[value] = [type];               tmp.push(value);           }else if(obj[value].indexOf(type) == -1){        obj[value].push(type);       
         tmp.push(value);
}} return tmp}var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];console.log(uniq(aa));

方法二:创建一个新数组,判断这个新数组中是否含有原数组的值,如果不存在就push到新数组中.

function fn2(arr){  var tmp = [];  for(var i in arr){    if(tmp.indexOf(arr[i]) == -1){      tmp.push(arr[i]);}}return tmp;}
var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];console.log(uniq(aa));




原创粉丝点击