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

首頁 > 網站 > WEB開發 > 正文

數組去重

2024-04-27 15:18:18
字體:
來源:轉載
供稿:網友

1:

Array.PRototype.fun1 = function(){ var arr = []; //一個新的臨時數組 for(var i = 0; i < this.length; i++) //遍歷當前數組 { //如果當前數組的第i已經保存進了臨時數組,那么跳過, //否則把當前項push到臨時數組里面 if (arr.indexOf(this[i]) == -1) arr.push(this[i]); } return arr;}

2:第二種方法遠遠快于其他兩種方法。 但是內存占用方面應該第二種方法比較多,因為多了一個hash表。這就是所謂的空間換時間。

Array.prototype.fun2 = function(){ var n = {}, r=[]; //n為hash表,r為臨時數組 for(var i = 0; i < this.length; i++){ //遍歷當前數組 if (!n[this[i]]){ //如果hash表中沒有當前項 n[this[i]] = true; //存入hash表 r.push(this[i]); //把當前數組的當前項push到臨時數組里面 } } return r;}

3:

Array.prototype.fun3 = function(){ var n = [this[0]]; //結果數組 for(var i = 1; i < this.length; i++){ //從第二項開始遍歷 //如果當前數組的第i項在當前數組中第一次出現的位置不是i, //那么表示第i項是重復的,忽略掉。否則存入結果數組 if (this.indexOf(this[i]) == i) n.push(this[i]); } return n;}

4: 這個方法的思路是先把數組排序,然后比較相鄰的兩個值。 排序的時候用的JS原生的sort方法,JS引擎內部應該是用的快速排序吧。 最終測試的結果是此方法運行時間平均是第二種方法的三倍左右,不過比第一種和第三種方法快了不少。

Array.prototype.fun4 = function(){ this.sort(); var re=[this[0]]; for(var i = 1; i < this.length; i++){ if( this[i] !== re[re.length-1]){ re.push(this[i]); } } return re;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涞水县| 四子王旗| 滦南县| 金溪县| 金堂县| 昌乐县| 内丘县| 铜川市| 塔河县| 丹巴县| 渭源县| 桦川县| 横山县| 伊宁市| 拉萨市| 化隆| 吴堡县| 饶平县| 兴山县| 宕昌县| 郑州市| 手机| 璧山县| 黄大仙区| 绥棱县| 淄博市| 昌平区| 彭泽县| 弥渡县| 车险| 乌审旗| 雷州市| 奎屯市| 武宣县| 紫金县| 东乡族自治县| 阳新县| 城步| 台湾省| 太白县| 简阳市|