国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 12:10:59
字體:
供稿:網(wǎng)友

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

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

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

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

方法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:

遍歷要刪除的數(shù)組arr, 把元素分別放入另一個數(shù)組tmp中,在判斷該元素在arr中不存在才允許放入tmp中
用到兩個函數(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)換 自動就把重復(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; } 

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 玛多县| 廊坊市| 宜章县| 香港| 盐源县| 和硕县| 买车| 西乡县| 应城市| 彩票| 丹棱县| 衡阳市| 固阳县| 霍州市| 双城市| 泸西县| 闸北区| 蚌埠市| 六枝特区| 工布江达县| 锦屏县| 长阳| 武宣县| 景德镇市| 高要市| 喀喇沁旗| 招远市| 利津县| 长寿区| 文山县| 无锡市| 嘉兴市| 巴彦县| 武隆县| 祁连县| 重庆市| 博湖县| 织金县| 海丰县| 扎鲁特旗| 环江|