日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端面试高频题:删除数组重复元素的多种方法

發(fā)布時間:2025/1/21 HTML 96 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端面试高频题:删除数组重复元素的多种方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在想著換工作,去了一家中關(guān)村的上市公司,面試官隨便問了幾個問題其中就提到了怎么刪除數(shù)組元素的方法,表示這已經(jīng)是第三次遇到了這個問題了,由于知識口頭說說所以就隨便說了下,之前用的時候都是直接找的方法庫雖然知道大致是怎么寫的但是還沒有真正寫過,網(wǎng)上的方法還是蠻多的這里也給大家分享一個作者寫的吧,希望對初學(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ù)組等等這里再放上別人的寫的幾個方法可以綜合比較下

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

原文出處:http://blog.sina.com.cn/s/blog_77a4568a0101d4lq.html

方法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; }

?

?

?

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

轉(zhuǎn)載于:https://www.cnblogs.com/yy-hh/p/4591852.html

總結(jié)

以上是生活随笔為你收集整理的前端面试高频题:删除数组重复元素的多种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。