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

首頁 > 語言 > JavaScript > 正文

JavaScript數組去重算法實例小結

2024-05-06 15:34:33
字體:
來源:轉載
供稿:網友

本文實例總結了JavaScript數組去重算法。分享給大家供大家參考,具體如下:

測試用例:

arr = ["1",3,"1",1,4,5,1,"2",5,1,{"name":"li","age":20},2,4,3,{"name":"li","age":20},""];

方法一:借助于臨時數組與indexOf , 算法復雜度為:O(n^2)

function unique1(arr){  var temp = [];  for(var i=0; i<arr.length; i++){    if(temp.indexOf(arr[i]) == -1){      temp.push(arr[i]);    }  }  return temp;}

測試結果:

unique1(arr) : ["1", 3, 1, 4, 5, "2", Object { name="li", age=20}, 2, Object { name="li", age=20}, ""]

bug 無法區分對象

方法二 : 用JavaScript中的Object對象來當作哈希表

function unique2(arr){  var temp=[];  var hash={};  for(var i=0; i<arr.length;i++){    if(!hash[arr[i]]){      hash[arr[i]]=true;      temp.push(arr[i]);    }  }  return temp;}

測試結果:

unique2(arr) : ["1", 3, 4, 5, "2", Object { name="li", age=20}, ""]

bug : 無法區分: 1 和 "1"

修改

function unique2(arr){  var temp=[];  var hash={};  for(var i=0; i<arr.length;i++){      var item = arr[i];    var key = typeof(item)+item;    if(!hash[key]){      hash[key]=true;      temp.push(arr[i]);    }  }  return temp;}

測試結果:

unique2(arr) : ["1", 3, 1, 4, 5, "2", Object { name="li", age=20}, 2, ""]

方法三:先用sort對數組排序,然后借助臨時數組,存儲相同元素的最后一個,該方法只能用于純Number類型數組

function unique3(arr){  arr.sort(function(a,b){    return a-b;  });  var temp = [];  for(var i=0;i<arr.length;i++){    if(arr[i] !== arr[i+1]){      temp.push(arr[i]);    }  }  return temp;}

PS:這里再為大家提供幾款相關工具供大家參考使用:

在線去除重復項工具:
http://tools.Vevb.com/code/quchong

在線文本去重復工具:
http://tools.Vevb.com/aideddesign/txt_quchong

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數組操作技巧總結》、《JavaScript字符與字符串操作技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript排序算法總結》、《JavaScript查找算法技巧總結》、《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript錯誤與調試技巧總結》

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 那坡县| 莱西市| 平武县| 永年县| 灵石县| 湖南省| 乌海市| 莱州市| 延长县| 华池县| 阜平县| 广平县| 白城市| 肇州县| 日喀则市| 故城县| 浮梁县| 扬中市| 北京市| 宁晋县| 读书| 平顺县| 渑池县| 潢川县| 白沙| 西宁市| 滦南县| 泰兴市| 宝丰县| 东乡族自治县| 赤水市| 凯里市| 琼结县| 江油市| 明光市| 清涧县| 太保市| 乌拉特中旗| 花莲县| 拉萨市| 法库县|