国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

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

圖片精選

主站蜘蛛池模板: 百色市| 张家港市| 玉山县| 郸城县| 酉阳| 荣成市| 西安市| 西和县| 富川| 正定县| 安新县| 靖州| 黔江区| 临沭县| 额尔古纳市| 随州市| 长兴县| 阿鲁科尔沁旗| 四子王旗| 罗山县| 广平县| 潮安县| 报价| 乐陵市| 茂名市| 沽源县| 东丰县| 华容县| 宜兰市| 云浮市| 保山市| 丁青县| 务川| 峨眉山市| 商城县| 泉州市| 抚远县| 大港区| 措美县| 句容市| 临泽县|