js过滤重复数组

来源:互联网 发布:赵薇戴立忍事件 知乎 编辑:程序博客网 时间:2024/04/28 17:11

直接看代码 来自网上整理

<script type="text/javascript">
 //method 1
 function getUniqueArray(oriArray){
   var newArray = oriArray.slice(0);
  
   for(var i=0;i<oriArray.length;i++){
      for(var j=i+1;j<newArray.length;){
         if(oriArray[i] == newArray[j]){
            newArray.splice(j,1);
          }else{
            j++;
           }
       }
    }
    
  return newArray;
  }
  
//nice
//method 2  
Array.prototype.unique = array_unique;
function array_unique()
{
 var o = new Object();
 for (var i=0,j=0; i<this.length; i++)
 {
  //filter repeat item
  if (typeof o[this[i]] == 'undefined')
  {
   o[this[i]] = j++;
  }
 }
 this.length = 0;
 //create new array
 for (var key in o)
 {alert(key+"_"+o[key])
  this[o[key]] = key;
 }
 return this;
}

//demo
function ForInDemo(){
   // 创建某些变量。
   var a, key, s = "";
   // 初始化对象。
   a = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}
   // 迭代属性。
   for (key in a)   {
      s += key+" "+a[key] + "/n";
   }
  
   return(s);
}

var arr = new Array();
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
arr[3] = "James";
arr[4] = "James";
arr[5] = "Adrew";
arr[6] = "Martin";

document.write(arr + "<br />")
//arr.splice(2,0,"William")
//arr.splice(2,1,"wangsd");

document.write(getUniqueArray(arr) + "<br />")
document.write(arr.unique() + "<br />")
//alert(ForInDemo());
</script>