JavaScript數組去重的幾種方法效率測試,javascript數組

來源:互聯網
上載者:User

JavaScript數組去重的幾種方法效率測試,javascript數組

以下是我針對網上三種高效率方法總結與效率測試,如果大家有更好的意見或建議也可以提出,大家共勉學習。

數組去重法1:

Array.prototype.unique1 = function(){ console.time("數組去重法1");   //記錄開始執行的時間 var arr = [];    //建立一個臨時數組 var obj = {};   //建立一個Null 物件 for(var i = 0; i < this.length; i++){   //遍曆當前要去重的數組  if(!obj[this[i]]){   //判斷obj對象中是否存有當前項,沒有則執行   arr.push(this[i]);   //將當前項push到臨時數組中   obj[this[i]] = 1;   //將當前項存入obj對象  } } console.timeEnd("數組去重法1");   //記錄結束執行的時間 return arr;}

數組去重法2:

Array.prototype.unique2 = function(){ console.time("數組去重法2"); //記錄開始執行的時間 var arr = [];  //建立一個臨時數組 for(var i = 0; i < this.length; i++){  //遍曆當前要去重的數組  if(arr.indexOf(this[i]) == -1){  //判斷臨時數組中是否存有當前項,沒有則執行   arr.push(this[i]); //將當前項push到臨時數組中  } } console.timeEnd("數組去重法2"); //記錄結束執行的時間 return arr;}

數組去重法3:

Array.prototype.unique3 = function(){ console.time("數組去重法3"); //記錄開始執行的時間 var arr = [this[0]]; //建立一個臨時數組,並將要去重數組的第一項存入臨時數組 for(var i = 1; i < this.length; i++) { //從要去重數組第二項開始遍曆  if (this.indexOf(this[i]) == i){ //判斷臨時數組中是否存有當前項,沒有則執行   arr.push(this[i]); //將當前項push到臨時數組中  } } console.timeEnd("數組去重法3"); //記錄結束執行的時間 return arr;}

效率測試方法:

var arr1 = []; //建立一個要去重的數組for(var i = 0; i < 200000; i++){ //遍曆200000個資料 arr1.push(parseInt(Math.random() * 10) + 1); //將所有資料返回為隨機數(1-10之間)的數, 並push到要去重的數組中}console.log(arr1.unique1()); //列印數組去重法1的執行時間console.log(arr1.unique2()); //列印數組去重法2的執行時間console.log(arr1.unique3()); //列印數組去重法3的執行時間

效率測試結果:

總結

以上就是關於JavaScript幾種數組去重的方法效率測試,希望測試的結果對大家選擇使用數組去重方法能有所協助,如果有疑問大家可以留言交流。謝謝大家對幫客之家的支援。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.