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

首頁 > 開發(fā) > JS > 正文

JavaScript數(shù)組去重算法實(shí)例小結(jié)

2024-05-06 16:44:09
字體:
供稿:網(wǎng)友

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

測試用例:

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

方法一:借助于臨時數(shù)組與indexOf , 算法復(fù)雜度為: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;}

測試結(jié)果:

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

bug 無法區(qū)分對象

方法二 : 用JavaScript中的Object對象來當(dāng)作哈希表

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

測試結(jié)果:

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

bug : 無法區(qū)分: 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;}

測試結(jié)果:

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

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

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

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


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黎城县| 雅安市| 博乐市| 安阳市| 湟源县| 香港| 普洱| 宁南县| 界首市| 高碑店市| 连山| 东乡县| 汉阴县| 库车县| 延长县| 仁化县| 高台县| 马关县| 九龙县| 宣城市| 曲松县| 江西省| 仁化县| 巨鹿县| 聂荣县| 繁昌县| 高陵县| 孟村| 泉州市| 沾益县| 吴江市| 昭觉县| 万州区| 长沙县| 寻乌县| 肃北| 五原县| 齐河县| 个旧市| 昌黎县| 嘉义市|