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

首頁 > 語言 > JavaScript > 正文

js數(shù)組去重的三種常用方法總結(jié)

2024-05-06 15:59:49
字體:
供稿:網(wǎng)友
本篇文章主要是對js數(shù)組去重的三種常用方法進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助

第一種是比較常規(guī)的方法

思路:

1.構(gòu)建一個新的數(shù)組存放結(jié)果

2.for循環(huán)中每次從原數(shù)組中取出一個元素,用這個元素循環(huán)與結(jié)果數(shù)組對比

3.若結(jié)果數(shù)組中沒有該元素,則存到結(jié)果數(shù)組中

復(fù)制代碼 代碼如下:


Array.prototype.unique1 = function(){
 var res = [this[0]];
 for(var i = 1; i < this.length; i++){
  var repeat = false;
  for(var j = 0; j < res.length; j++){
   if(this[i] == res[j]){
    repeat = true;
    break;
   }
  }
  if(!repeat){
   res.push(this[i]);
  }
 }
 return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1());


第二種方法比上面的方法效率要高

思路:

1.先將原數(shù)組進(jìn)行排序

2.檢查原數(shù)組中的第i個元素 與 結(jié)果數(shù)組中的最后一個元素是否相同,因為已經(jīng)排序,所以重復(fù)元素會在相鄰位置

3.如果不相同,則將該元素存入結(jié)果數(shù)組中

復(fù)制代碼 代碼如下:


Array.prototype.unique2 = function(){
 this.sort(); //先排序
 var res = [this[0]];
 for(var i = 1; i < this.length; i++){
  if(this[i] !== res[res.length - 1]){
   res.push(this[i]);
  }
 }
 return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique2());


第二種方法也會有一定的局限性,因為在去重前進(jìn)行了排序,所以最后返回的去重結(jié)果也是排序后的。如果要求不改變數(shù)組的順序去重,那這種方法便不可取了。

第三種方法(推薦使用)

思路:

1.創(chuàng)建一個新的數(shù)組存放結(jié)果

2.創(chuàng)建一個空對象

3.for循環(huán)時,每次取出一個元素與對象進(jìn)行對比,如果這個元素不重復(fù),則把它存放到結(jié)果數(shù)組中,同時把這個元素的內(nèi)容作為對象的一個屬性,并賦值為1,存入到第2步建立的對象中。

說明:至于如何對比,就是每次從原數(shù)組中取出一個元素,然后到對象中去訪問這個屬性,如果能訪問到值,則說明重復(fù)。

復(fù)制代碼 代碼如下:


Array.prototype.unique3 = function(){
 var res = [];
 var json = {};
 for(var i = 0; i < this.length; i++){
  if(!json[this[i]]){
   res.push(this[i]);
   json[this[i]] = 1;
  }
 }
 return res;
}

var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());


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

圖片精選

主站蜘蛛池模板: 张家界市| 文登市| 双城市| 肃宁县| 盐城市| 抚远县| 鄯善县| 潢川县| 泽库县| 禹城市| 昭苏县| 辽阳市| 龙岩市| 长葛市| 揭西县| 曲水县| 宾川县| 秦安县| 凭祥市| 金阳县| 寿光市| 鄂温| 涪陵区| 东台市| 汪清县| 界首市| 湟中县| 尚志市| 阿荣旗| 富阳市| 平乐县| 日土县| 图木舒克市| 河津市| 神池县| 武宣县| 普安县| 博客| 齐齐哈尔市| 景宁| 印江|