本文實(shí)例講述了javascript刪除數(shù)組重復(fù)元素的方法。分享給大家供大家參考。具體分析如下:
這里分享一個(gè)前端面試高頻題,主要實(shí)現(xiàn)javascript刪除數(shù)組重復(fù)元素。希望對初學(xué)者有所幫助
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //數(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í)操作多個(gè)數(shù)組等等這里再放上別人的寫的幾個(gè)方法可以綜合比較下
方法1:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 function oSort(arr) { var resu方法2:
遍歷要?jiǎng)h除的數(shù)組arr, 把元素分別放入另一個(gè)數(shù)組tmp中,在判斷該元素在arr中不存在才允許放入tmp中
用到兩個(gè)函數(shù):for ...in 和 indexOf()
?
1 2 3 4 5 6 7 8 9 10 11 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)
新聞熱點(diǎn)
疑難解答
圖片精選