欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript刪除數(shù)組重復(fù)元素的方法匯總

 更新時(shí)間:2015年06月24日 11:59:55   作者:梁洋洋  
這篇文章主要介紹了javascript刪除數(shù)組重復(fù)元素的方法,實(shí)例匯總了幾種常用的javascript刪除數(shù)組重復(fù)元素的技巧,需要的朋友可以參考下

本文實(shí)例講述了javascript刪除數(shù)組重復(fù)元素的方法。分享給大家供大家參考。具體分析如下:

這里分享一個(gè)前端面試高頻題,主要實(shí)現(xiàn)javascript刪除數(shù)組重復(fù)元素。希望對(duì)初學(xué)者有所幫助

//數(shù)組去重的方法
Array.prototype.unique=function(){
  //集中聲明變量
  var 
   oldArr=this,
   newArr=[oldArr[0]],
   len=oldArr.length,
   i=1;
  //過(guò)濾空數(shù)組
  if(!len) return this;
  //過(guò)濾重復(fù)元素
  for(;i<len;i++){
    newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : ''; 
  }
  //返回過(guò)濾后的數(shù)組沒(méi)有影響原數(shù)組
  return newArr;
}
var arr=['a','a','b','a','c','d'];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

雖然網(wǎng)上也有很多而且自己寫(xiě)的也不咋地,但是畢竟自己寫(xiě)的邏輯清楚以后還可以順著邏輯擴(kuò)展比如擴(kuò)展到對(duì)象元素去重或者是可以同時(shí)操作多個(gè)數(shù)組等等這里再放上別人的寫(xiě)的幾個(gè)方法可以綜合比較下

方法1:

function oSort(arr)
{
  var result ={};
  var newArr=[];
  for(var i=0;i
  {
 if(!result[arr[i]])
 {
   newArr.push(arr[i])
   result[arr[i]]=1
 }
  }
  return newArr
}

方法2:

遍歷要?jiǎng)h除的數(shù)組arr, 把元素分別放入另一個(gè)數(shù)組tmp中,在判斷該元素在arr中不存在才允許放入tmp中
用到兩個(gè)函數(shù):for ...in 和 indexOf()

var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
 function unique(arr){
   // 遍歷arr,把元素分別放入tmp數(shù)組(不存在才放)
   var tmp = new Array();
   for(var i in arr){
  //該元素在tmp內(nèi)部不存在才允許追加
  if(tmp.indexOf(arr[i])==-1){
  }
 }
  return tmp;
}

方法3:

把目標(biāo)數(shù)組arr的元素值和鍵的位置調(diào)換 自動(dòng)就把重復(fù)的元素給刪除掉了,調(diào)換后的樣子:array('qiang'=>1,'ming'=>1,'tao'=>1)

<script type="text/javascript">
  var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
  function unique(arr){
    var tmp = new Array();
    for(var m in arr){
      tmp[arr[m]]=1;
    }
    //再把鍵和值的位置再次調(diào)換
    var tmparr = new Array();
    for(var n in tmp){
     tmparr.push(n);
    }
   return tmparr;
 }
</script>

方法4

/**
* 去除數(shù)組重復(fù)元素
*/
function uniqueArray(data){ 
  data = data || []; 
  var a = {}; 
  for (var i=0; i<data.length; i++) { 
    var v = data[i]; 
    if (typeof(a[v]) == 'undefined'){ 
      a[v] = 1; 
    } 
  }; 
  data.length=0; 
  for (var i in a){ 
    data[data.length] = i; 
  } 
  return data; 
} 

方法都差不多第三個(gè)方法想法還是蠻高明的~

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論