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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试题——4种数组去重的方法

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试题——4种数组去重的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數組去重或者其衍生作為筆試題或者機試題出現的幾率也是很大的,寫出的方法越多,則讓面試官覺得你思維越開闊,那么成功的幾率當然就大了。

廢話不多說,下面來說說下面我整理的4中數組去重的方法

方法一: findInArr方法+select方法組合

  findInArr : 查找一個數在當前數組中是否存在,存在返回true,找完所有沒有找到,返回false,這個數就是我們要操作的那個數組

  select ? ? ?:循環數組,并調用findInArr方法 查找當前arr[i]在arr2中是否存在,如果返回false 那么就把當前這個數 arr[i] ,push到新的數組 arr2中,最后return arr2

1 function findInArr(n ,arr){ 2 for (var i = 0; i < arr.length; i++) { 3 if (n == arr[i]) { 4 return true; 5 } 6 } 7 return false; 8 } 9 function select (arr){ 10 var arr2 = []; 11 for(var i = 0; i < arr.length; i++){ 12 if (!findInArr(arr[i],arr2)) { 13 arr2.push(arr[i]); 14 } 15 } 16 return arr2; 17 } View Code

方法二 :利用json特性?

  創建一個空的json,通過對key的檢索,---> !json[arr[i]],取反說明不存在

  這樣我們可以對其進行賦值,json[arr[i]] = true; ?對于 賦什么值,隨意,保證它的鍵值對就行

  并且把當前這個數push 或者其他方式都行 ,總是添加到新數組 arr2中,最后return arr2

1 function select (arr){ 2 var json = {}; 3 var arr2 = []; 4 for (var i = 0; i < arr.length; i++) { 5 if (!json[arr[i]]) { 6 json[arr[i]] = true; 7 arr2.push(arr[i]) 8 } 9 } 10 return arr2; 11 } View Code

方法三: 相鄰數比較法,這個方法前提是先用sort 進行簡單排序,不需要改進版的

  經過sort排序之后,我們不論它排序是否正確,但是有一點我們能確定,那就是相同的一定被排到了一起

  那么我們對排序之后的數組遍歷,并且讓當前的數和下一個數進行比較,如果相等那么用splice(i,1) 方法對其進行刪除,這時候i的值需要 i--,避免它少比一次,最后return arr;

1 function select(arr){ 2 arr.sort(); 3 for (var i = 0; i < arr.length; i++) { 4 if (arr[i] == arr[i+1]) { 5 arr.splice(i,1) 6 i--; 7 } 8 } 9 return arr; 10 } View Code

方法四:使用數組的indexOf方法 (IE8--不兼容)

  通過判斷arr2.indexOf(arr[i]) == -1 ,來確定新數組arr2中沒有arr[i],并將其添加到數組arr2中,最終返回 arr2

1 function select (arr){ 2 var arr2 = []; 3 for( var i = 0; i < arr.length; i++){ 4 if (arr2.indexOf(arr[i]) == -1) { 5 arr2.push(arr[i]) 6 } 7 } 8 return arr2; 9 } View Code

  上述四中方法肯定存在的性能的差異,可以從速度上,所占內存等進行比較,我沒有測過所以就不妄加定論。希望測過的朋友,能告知 。謝謝

轉載于:https://www.cnblogs.com/NTWang/p/6246621.html

總結

以上是生活随笔為你收集整理的面试题——4种数组去重的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。